
Collection::addOrReplaceOne 메소드는 Collection에 이미 존재하는 Map을 찾고, 존재하지 않으면 새로 추가합니다.
Map을 찾을 때는 Map의 key-value 쌍을 기준으로 찾습니다.
만약 Map을 찾을 때 key-value 쌍이 여러 개가 존재한다면, Collection::addOrReplaceOne 메소드는 첫 번째로 찾은 Map을 반환합니다.
Map을 생성하는 방법은 여러 가지가 있습니다.
1. HashMap: HashMap은 key-value 쌍을 저장하는 Map의 구현체입니다.
#hostingforum.kr
java
Map map = new HashMap<>();
2. LinkedHashMap: LinkedHashMap은 HashMap과 유사하지만, Map의 key-value 쌍을 저장할 때 순서를 유지합니다.
#hostingforum.kr
java
Map map = new LinkedHashMap<>();
3. TreeMap: TreeMap은 HashMap과 유사하지만, Map의 key-value 쌍을 저장할 때 key를 기준으로 정렬합니다.
#hostingforum.kr
java
Map map = new TreeMap<>();
4. ConcurrentHashMap: ConcurrentHashMap은 HashMap과 유사하지만, 멀티 쓰레드 환경에서 사용할 때 안전합니다.
#hostingforum.kr
java
Map map = new ConcurrentHashMap<>();
위의 코드에서 "key1"의 value를 "value3"로 변경하고 싶다면, Map을 찾을 때 key-value 쌍이 존재하는지 확인하고, 존재하지 않으면 새로 추가하거나, 존재하면 value를 변경하는 코드를 작성해야 합니다.
#hostingforum.kr
java
List> list = new ArrayList<>();
Map map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
list.add(map);
// Map을 찾을 때 key-value 쌍이 존재하는지 확인
Map existingMap = list.stream()
.filter(m -> m.get("key1").equals("value1"))
.findFirst()
.orElse(null);
if (existingMap != null) {
// Map이 존재하면 value를 변경
existingMap.put("key1", "value3");
} else {
// Map이 존재하지 않으면 새로 추가
list.add(map);
}
이 메소드를 사용하기 전에, Collection에 이미 존재하는 Map을 찾을 때 key-value 쌍이 여러 개가 존재하는지 확인해야 합니다.
만약 key-value 쌍이 여러 개가 존재한다면, Collection::addOrReplaceOne 메소드는 첫 번째로 찾은 Map을 반환합니다.
이 메소드의 동작 원리를 이해하고, Map을 생성하는 방법을 선택하고, Map을 찾을 때 key-value 쌍이 여러 개가 존재하는지 확인하는 코드를 작성해야 합니다.
2025-07-05 09:16