728x90
- target: 2개의 HashMap putAll & merge(Java 1.8+)
- method:
1. HashMap.putAll()
Map<String,Object> map1 = new HashMap<String,Object>();
map1.put("A", 100);
map1.put("B", 200);
map1.put("C", 300);
Map<String,Object> map2 = new HashMap<String,Object>();
map2.put("A", 1);
map2.put("B", 2);
map2.put("D", 400);
map1.putAll(map2);
// {A: 1, B, 2, C: 300, D: 400}
//map2.putAll(map1);
// {A: 100, B: 200, C: 300, D: 400}
※ map1.putAll(map2);는 map1에 map2를 put하는 형태이기에, 동일한 key가 존재하는 경우, map2의 value로 변경된 결과를 출력
2. HashMap.merge() (Java 1.8+)
Map<String,Object> map1 = new HashMap<String,Object>();
map1.put("A", 100);
map1.put("B", 200);
map1.put("C", 300);
Map<String,Object> map2 = new HashMap<String,Object>();
map2.put("A", 1);
map2.put("B", 2);
map2.put("D", 400);
// map1.merge의 parameter로 map2의 forEach의 key/value를 전달
map2.forEach((key, value) -> map1.merge(key, value, (map1Value, map2Value) -> map2Value));
// map1.putAll(map2);와 결과 동일
map2.forEach((key, value) -> map1.merge(key, value, (map1Value, map2Value) -> map1Value + map2Value));
// map1과 map2의 key별 value 합산
// {A: 101, B: 202, C: 300, D: 400}
※ 기존 putAll의 경우 덮어쓰기 형태지만, merge의 경우, 별도 수식 추가 가능
- source: https://hianna.tistory.com/580
[Java] 2개의 HashMap 합치기 (putAll, merge)
HashMap.putAll() HashMap.merge() - Java 8 이후 1. HashMap.putAll() 이 방법을 사용하면, 같은 key가 있을 때, value를 덮어 씁니다. 예제 import java.util.HashMap; import java.util.Map; public class Me..
hianna.tistory.com
728x90
'Dev > Java' 카테고리의 다른 글
람다 표현식 내에서 표현식 외부의 변수 사용 (0) | 2022.08.05 |
---|---|
[logback] logback.xml (0) | 2022.06.21 |
[Jvm] JAVA_OPTS 설정 (0) | 2022.06.20 |
두 지점간의 위경도 좌표를 통한 거리 계산 (0) | 2022.05.13 |
공간좌표계 거리 계산 및 좌표 변환 (TM/KATEC - WGS84) (0) | 2022.05.13 |