java
java.util.concurrent.CompletionException: java.lang.IllegalStateException: Duplicate key
기계새
2022. 3. 25. 08:49
.stream().collect(Collectors.toMap(A::getKey, B::getKey)
>> .stream().collect(Collectors.toMap(A::getKey, B::getKey, (k1,k2) -> k1)
java8 stream collect toMap 사용 중 duplicate key 발생 시
Map 반환에 키 중복이 있을때 발생하는데, 오버로딩된 toMap 메소드 중 merge 기능이 있는걸 사용하면 된다.
<실행되는 Collectors.class >
public static <T, K, U>
Collector<T, ?, Map<K,U>> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper,
BinaryOperator<U> mergeFunction) {
return toMap(keyMapper, valueMapper, mergeFunction, HashMap::new);
}