사용 이유
예시코드를 보다가 map.of()라는 메서드가 있길래 내가 아는 맵과는 다른 것 같아 분석해 보았다.
map.of 는 map.put(1, "yhy") 이런 키와 밸류들을 하나하나 집어넣는 동작을 조금? 줄여준다.
분석
코드로 확인해 보자면
private Map<Integer, String> map = new HashMap<>() {
{
put(1, "aaaaaaaa");
put(2, "bbbbbbbbb");
put(3, "ccccccc");
}
};
위 코드는 우리가 아는 해쉬맵을 사용하는 코드이다.
하지만 자바 버전 9 이상부터는 Map.of를 통해 조금 더 간단하게 작성이 가능하다.
private Map<Integer, String> map = Map.of(
1, "aaaaaa",
2, "bbbbbbbb",
3, "ccccccccc"
);
이렇게 쓸 수 있다. 늘려 쓰면 이런형태가 된다.
private Map<Integer, String> map = Map.of(1,"aaaaaa",2,"bbbbbbbb",3,cccccccc"
);
문제점
map.of 는 최대 데이터가 10개밖에 안들어간다. 즉 11번째 키,밸류 부터는 입력되지 않는다.
이를 해결하려면 ofEntries() 를 이용해 처리 가능하다.
private static Map<Integer, String>map = Map.ofEntries(
Map.entry(k:1, v:"aaaaa"),
Map.entry(k:2, v:"aaaaa"),
Map.entry(k:3, v:"aaaaa"),
Map.entry(k:4, v:"aaaaa"),
Map.entry(k:5, v:"aaaaa"),
Map.entry(k:6, v:"aaaaa"),
Map.entry(k:7, v:"aaaaa"),
Map.entry(k:8, v:"aaaaa"),
Map.entry(k:9, v:"aaaaa"),
Map.entry(k:10, v:"aaaaa"),
Map.entry(k:11, v:"aaaaa"),
);
'CS' 카테고리의 다른 글
순열, 조합 자바로 코딩(JAVA) (0) | 2022.11.24 |
---|---|
B-tree 와 B+ tree 에 대한 정리 글(면접질문) (0) | 2022.11.22 |
Elasticsearch에 대하여. (엘라스틱서치) (0) | 2022.11.14 |
MSA 방식이란? (0) | 2022.11.14 |
기술면접 질문 모음 (3) | 2022.09.12 |