Language/Java

[Java]해시맵 리터럴 방식으로 생성 방법

코드스토리 2022. 6. 20. 00:54

해시맵을 리터럴 방식으로 생성하는 방법

파라미터에 해시맵을 넘겨야 할 때가 있습니다.

이것을 하기 위해서는 해당 타입의 변수를 생성하고, 기본 생성자 호출부터, put() 메소드를 사용하여 값을 넣어주고 그제서야 파라미터로 넘길 수 있습니다.

 

하지만 이런 것들이 귀찮은 경우가 있습니다.

리터럴 방식으로 생성, 값을 넣는 일을 한 번에 처리하여 파라미터로 넘길 수 있는 방법이 없는지 알아보게 되었습니다.

 

자바 9 이상부터 가능한 방법

Map.of(
	key1, value1,
	key2, value2
);

위와 같이 사용할 수 있습니다. 하지만, 위의 방법은 10개의 요소만 사용이 가능합니다.

 

만약 더 많은 요소들을 사용하고 싶다면

Map.ofEntries(
	entry(key1, value1),
	entry(key2, value2)
);

다음과 같이 사용하면 됩니다.

 

자바 8 이하에서 사용 가능한 방법

new HashMap<Object, Object>() {{
	put(key1, value1);
	put(key1, value1);
}};

해당 방법으로 사용할 수는 있으나, 메모리를 낭비하는 경우가 존재하여 권장하지 않는다고 합니다.