728x90
오늘 작업하면서 삽질했던 경험을 잊지 않기위해 포스팅하겠다.
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
List<Map<String, String>> list = new ArrayList<>();
String[] arrStr = {"유재석", "강호동", "이경규", "!!!"};
for(String str : arrStr) {
map.put("name", str);
list.add(map);
}
System.out.println(list);
}
위 코드블럭의 main method를 실행하면 결과는 다음과 같다.
HashMap에서 key값은 중복이 허용되지 않기 때문에 아무리 ArrayList의 담았다해도 같은 key값의 value는 재할당 된다.
이 때 아주 좋은 방법이 있는데 그것은 아래 코드블럭처럼 하면 된다.
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<>();
String[] arrStr = {"유재석", "강호동", "이경규", "!!!"};
for(String str : arrStr) {
Map<String, String> map = new HashMap<>();
map.put("name", str);
list.add(map);
}
System.out.println(list);
}
for문을 반복할 때 마다 HashMap을 생성해주는 것이다. 이렇게 되면 list의 담는 map이 서로다르기 때문에 같은 중복키여도 value값이 다르게 할당해줄 수 있다.
728x90
'자기계발 > 알고리즘, 자료구조' 카테고리의 다른 글
자료구조 ] 힙(Binary Heaps) - 최소힙(Min-Heaps), 최대힙(Max-Heaps) 개념 정리 (0) | 2022.01.06 |
---|---|
자료구조 ] Queue(큐) 메소드 add와 offer의 차이 (0) | 2021.12.28 |
자료구조 ] String, StringBuilder, StringBuffer의 차이 정리 (0) | 2021.10.19 |
String ] 숫자만 입력해서 특정 문자를 반복하는 방법 (0) | 2021.10.15 |
자료구조 ] 배열을 리스트로 변환하는 방법 (0) | 2021.10.15 |