reduce연산은 내부적으로 스트림의 요소를 하나씩 소모하면서 프로그래머가 직접 지정한 기능을 수행한다.
기억은 나지 않지만 어디선가 본 표현으로 집계
라고 표현 한 곳이 있다.
int[] numbers = {1, 3, 5, 8, 10, 13};
int sum = Arrays.stream(numbers).reduce((x,y) -> x + y).orElse(0);
int[] numbers = {1, 3, 5, 8, 10, 13};
int max = Arrays.stream(numbers).reduce((x,y)->{
if(x > y) return x;
else return y;
}).orElse(0);
String[] greetings = {"안녕하세요~~~", "hello", "Good morning", "반갑습니다^^"};
System.out.println(Arrays.stream(greetings).reduce("", (s1, s2)->{
if(s1.getBytes().length >= s2.getBytes().length) return s1;
else return s2;
}));