반응형
java 1.8 ~
default V merge(K key,
V value,
BiFunction<? super V,? super V,? extends V> remappingFunction)
key - 결과 값과 연결될 키
value - 키와 연결된 기존 값과 병합될 null이 아닌 값 또는 키와 연결된 기존 값이나 null 값이 없는 경우 해당 키와 연결될 값
remappingFunction - 값이 존재할 경우 값을 다시 계산하는 함수
지정된 키와 연결된 새 값 또는 해당 키와 연결된 값이 없는 경우 null을 반환.
key가 없거나 value가 null
→ 새 value 그냥 넣기
key가 있고 기존 value도 있음
→ 기존값 + 새값을 함수에 넣음
→ 함수 결과가 값이면 그 값으로 교체
→ 함수 결과가 null이면 key 자체를 제거
map.merge(key, msg, String::concat)
# String::concat - (a, b) -> a.concat(b)
# Integer::sum - (a, b) -> Integer.sum(a, b)
# Math::max - (a, b) -> Math.max(a, b)
# System.out::println - x -> System.out.println(x)
# String::toUpperCase - s -> s.toUpperCase()
# String::length - s -> s.length()
함수 자체에서 (검사되지 않은) 예외가 발생하면
해당 예외가 다시 발생하고 현재 매핑은 변경되지 않은 상태로 유지.
반응형
'CodingTest > java' 카테고리의 다른 글
| 문자열 뒤집기 - StringBuilder/StringBuffer , charAt() , char[] (0) | 2026.09.20 |
|---|---|
| 원하는 구간만 선택적으로 복사해서 새로운 배열 만들기 (0) | 2026.09.20 |
| 절댓값을 구할 때 - Math.abs() (0) | 2026.08.24 |
| Map에서 키(또는 값)가 포함되어있는지 찾을 때 - containsKey() / containsValue() (0) | 2026.08.24 |
| 각 요소(변수)를 한번에 List로 넣으려 할 때 - Arrays.asList() (0) | 2026.08.24 |