🌻 JAVA/정리정리정리
Java9 , Map.of(key, value);
iseunghan
2020. 8. 24. 22:07
반응형

https://www.amitph.com/create-hashmap-in-java/
Map.of 에는 key와 value를 최대 10개 까지 넣을 수 있는 메소드를 지원한다.
아래와 같이 map을 생성하면 된다.
Map<Integer, String> map = Map.of(1, "first", 2, "second");
실행 결과
{"1":{"name":"first"},"2":{"name":"second"}}
example
import java.util.Map;
public class MapOf1 {
public static void main(String[] args) {
Map<Integer, String> map = Map.of(101, "PP", 102, "QQ", 103, "RR");
map.forEach((k, v) -> System.out.println(k + " - " + v));
}
}
여기서 이제 값을 넣으려고 put 하려고 하면
map.put(104, "SS");
아래와 같은 에러가 발생한다.
Exception in thread "main" java.lang.UnsupportedOperationException
immutable Map 에 값을 넣을땐, List를 사용 해야한다.
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class MapOf3 {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("P1");
list1.add("Q1");
List<String> list2 = new ArrayList<>();
list2.add("P2");
list2.add("Q2");
Map<Integer, List<String>> map = Map.of(111, list1, 222, list2);
System.out.println(map);
list1.add("R1");
System.out.println(map);
}
}
그러면 아래와 같이 예외 없이, 값을 추가 시킬 수 있다.
{111=[P1, Q1], 222=[P2, Q2]} // 값 추가 전
{111=[P1, Q1, R1], 222=[P2, Q2]} // 값 추가 후
출처 : https://www.concretepage.com/java/java-9/java-map-of-and-map-ofentries
반응형