Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] 두 개의 Map 합치기 (merge, putAll) 본문
Map의 합치기란?
Java의 Map은 키-값 쌍을 저장하는 자료구조로, 두 개의 Map을 합쳐서 하나의 Map으로 만들 수 있습니다. 이를 통해 두 Map의 내용을 통합하거나 결합할 수 있습니다. Map을 합치는 데에는 주로 merge()와 putAll() 메서드가 사용됩니다.
merge() 메서드
merge() 메서드는 지정된 키와 연관된 값이 없거나 null인 경우에만 주어진 값으로 매핑합니다. 그렇지 않으면 주어진 remapping 함수를 사용하여 기존 값과 새 값을 결합합니다.
V merge(K key, V value, BiFunction<? super V, ? super V, ? extends V> remappingFunction)
- key: 값이 병합될 키
- value: 키에 매핑될 값
- remappingFunction: 기존 값과 새 값이 충돌하는 경우 새 값을 생성하는 함수
putAll() 메서드
putAll() 메서드는 지정된 Map의 모든 키-값 매핑을 현재 Map에 추가합니다.
void putAll(Map<? extends K, ? extends V> m)
- m: 현재 Map에 추가할 매핑을 포함하는 Map
두 개의 Map 합치기 예제
아래는 두 개의 Map을 합치는 예제 코드입니다.
import java.util.HashMap;
import java.util.Map;
public class MergeMapsExample {
public static void main(String[] args) {
// 첫 번째 Map
Map<Integer, String> map1 = new HashMap<>();
map1.put(1, "one");
map1.put(2, "two");
// 두 번째 Map
Map<Integer, String> map2 = new HashMap<>();
map2.put(3, "three");
map2.put(4, "four");
// merge() 메서드를 사용하여 두 Map 합치기
map2.forEach((key, value) -> map1.merge(key, value, (v1, v2) -> v1 + ", " + v2));
// putAll() 메서드를 사용하여 두 Map 합치기
Map<Integer, String> mergedMap = new HashMap<>(map1);
mergedMap.putAll(map2);
System.out.println("Merged Map with merge(): " + map1);
System.out.println("Merged Map with putAll(): " + mergedMap);
}
}
추가 예제:
아래는 두 Map을 합치는 다양한 상황을 다루는 예제 코드입니다.
import java.util.HashMap;
import java.util.Map;
public class MoreMergeExamples {
public static void main(String[] args) {
// 예제 1: merge() 메서드를 사용하여 중복된 키의 값 병합
Map<Integer, String> map1 = new HashMap<>();
map1.put(1, "one");
map1.put(2, "two");
Map<Integer, String> map2 = new HashMap<>();
map2.put(2, "deux");
map2.put(3, "three");
map2.forEach((key, value) -> map1.merge(key, value, (v1, v2) -> v1 + ", " + v2));
System.out.println("Merged Map: " + map1);
// 예제 2: put
All() 메서드를 사용하여 두 Map 합치기
Map<Integer, String> map3 = new HashMap<>(map1);
map3.putAll(map2);
System.out.println("Merged Map with putAll(): " + map3);
}
}
'프로그래밍' 카테고리의 다른 글
[Java/자바] JUnit - @After와 @AfterClass의 차이점 (0) | 2024.03.09 |
---|---|
[Java/자바] ConcurrentModificationException 발생 및 해결 방법 (0) | 2024.03.09 |
[Java/자바] Stream의 flatMap() 메서드 사용 방법 (0) | 2024.03.09 |
[Java/자바] Stream의 map() 메서드 사용 방법 (0) | 2024.03.09 |
[Java/자바]- Stream의 filter() 메서드 사용 방법과 예제 (0) | 2024.03.09 |