(Java8) 리듀싱(Reduce)
1. 요소의 합
int sum = numbers.stream().reduce(0, (a, b) -> a + b);
int product = numbers.stream().reduce(1, (a,b) -> a * b);
* 초기값 없음
Optional<Integer> sum = numbers.stream().reduce((a, b) -> a+ b);
2. 최댓값과 최솟값
Optional<Integer> max = numbers.stream().max(Integer::max);
Optional<Integer> min = numbers.stream().min(Integer::min);
Q) 스트림의 요리갯수를 계산하시오.
스트림의 각 요소를 1로 매핑한 다음 reduce로 이들의 합을 계산하는 방식으로 문제를 해결할 수 있다.
int count = menu.stream()
.map(d -> 1)
.reduce(0, (a, b) -> a +b);
댓글
댓글 쓰기