예제 상황
다음과 같은 정수 배열 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를 처리하는 방식을 지정하는 데 사용된다.
'Java > Stream 예제' 카테고리의 다른 글
[Stream 예제] int[]의 중복 원소 제거 (Set 활용) (0) | 2023.05.12 |
---|---|
[Stream] int[] ↔ Integer[] 변환 (0) | 2023.03.08 |
[Java / Stream] 배열 ↔︎ 리스트 간 변환 (정수) (0) | 2023.02.01 |
[Java / Stream] int 배열 내림차순 정렬 (0) | 2023.01.30 |