Java/Stream 예제
[Java / Stream] 정수 배열(int[])을 해시맵으로 변환하기 / Collectors.toMap() 활용
Dev_Green
2023. 5. 20. 10:45
예제 상황
다음과 같은 정수 배열 arr가 있을 때, 이 배열의 원소 별 count를 담는 해시맵을 만들고자 할 때 Collectors.toMap() 메서드를 활용할 수 있다.
결과로서의 arrMap은 다음과 같은 Key : Value 쌍을 이룰 것이다.
- 1 : 3
- 2 : 2
- 3 : 1
int[] arr = {1, 1, 1, 2, 2, 3};
Map<Integer, Integer> arrMap = Arrays.stream(arr)
.boxed()
.collect(
Collectors.toMap(
x->x,
x->1,
Integer::sum));
toMap() 메서드 살펴보기
아래는 toMap()의 선언부이다.
인자로서 keyMapper, valueMapper, mergeFunction을 받는다.
이때 mergeFunction은 중복된 key가 존재할 때 그에 해당하는 value를 처리하는 방식을 지정하는 데 사용된다.