728x90
이전에 봐야 할 Map 설명 링크 ↓
Map 중복 키 허용 방법
MultiValueMap 사용
MultiValueMap<String, Integer> mvMap = new LinkedMultiValueMap<>();
mvMap.add("A", 100);
mvMap.add("A", 200);
mvMap.add("A", 300);
List<Integer> a = mvMap.get("A");
for(int data : a) {
System.out.print(data + " "); // output : 100 200 300
}
위와 같이 A 키의 데이터를 가져올 때 리스트 형태로 반환한다.
HashMap 중복허용방법
HashMap은 중복을 허용하지않기때문에 동일한 키로 다른 값도 함께 들어올 경우 기존에 있던 키값에 덮어쓰기를 해버린다.
Map<String, Integer> map = new HashMap<>();
map.add("A", 100);
map.add("A", 200);
map.add("A", 300);
Integer a = map.get("A");
System.out.print(a + " "); // output : 300
만약 중복을 사용하고 싶다면 Map의 Value Type를 List 형태로 잡아버리면된다.
이는 값을 넣을 때 리스트를 새로 생성해 값을 집어 넣어야 하며,
파라미터 Value 값을 리스트로 감싼 형태로 직관성이 떨어져 MultiValueMap 에 비해 깔끔하지 않다.
Map<String, List<Integer>> listMap = new HashMap<>();
List<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
list.add(300);
listMap.put("A", list);
출처 :https://haenny.tistory.com/362
728x90
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] split() 문자열 잘라서 배열로 반환 (0) | 2023.07.18 |
---|---|
[JAVA] 문자열 치환 replace(), replaceAll() 차이점 (0) | 2023.07.18 |
[JAVA] 하드코딩을 피하는 자바 상수 사용법 (0) | 2023.06.22 |
[JAVA] 세션(session) 사용 방법 (0) | 2023.06.13 |
[JAVA] kmp알고리즘 (6) | 2023.05.24 |