728x90
반응형
작성일자 : 2020.06.13
Stream 을 활용하여 List to Map 변환하는 과정에서 발생할 수 있는 키 중복 예외
예외 발생 예시
List<Integer> list = new ArrayList<Integer>(){{add(0);add(1);add(1);add(2);}};
// { 0, 1, 1, 2 }
Map<Integer, Integer> map = list.stream()
.collect(Collectors.toMap(vo->vo, vo->vo));
// { {0,0}, {1,1}, {1,1}, {2,2} } 형태로 반환 -> key 1 중복 !!
수정
List<Integer> list = new ArrayList<Integer>(){{add(0);add(1);add(1);add(2);}};
// { 0, 1, 1, 2 }
Map<Integer, Integer> map = list.stream()
.collect(Collectors.toMap(vo->vo, vo->vo, (oldValue, newValue) -> oldValue));
// { {0,0}, {1,1}, {2,2} } 형태로 반환
// 기존 값을 유지할 경우
// .collect(Collectors.toMap(vo->vo, vo->vo, (oldValue, newValue) -> oldValue));
// 새로운 값을 유지할 경우
// .collect(Collectors.toMap(vo->vo, vo->vo, (oldValue, newValue) -> newValue));
728x90
반응형
'TroubleShooting' 카테고리의 다른 글
[Vue] You are using the runtime-only build of Vue where the template compiler is not available. (0) | 2020.09.07 |
---|---|
[IntelliJ] Git 관련 작업 시 hangs on/Holding (0) | 2020.06.16 |
[Spring] Expiring Daemon because JVM heap space is exhausted (0) | 2020.03.27 |
[Windows] 특정 포트 사용중인 프로세스 종료 (0) | 2019.12.26 |
[Spring Boot] CORS 해결 (0) | 2019.07.07 |