해시맵을 리터럴 방식으로 생성하는 방법
파라미터에 해시맵을 넘겨야 할 때가 있습니다.
이것을 하기 위해서는 해당 타입의 변수를 생성하고, 기본 생성자 호출부터, 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);
}};
해당 방법으로 사용할 수는 있으나, 메모리를 낭비하는 경우가 존재하여 권장하지 않는다고 합니다.