Java Stream reduce()

박병주·2023년 2월 23일
0

Java

목록 보기
7/7

Reduce

reduce연산은 내부적으로 스트림의 요소를 하나씩 소모하면서 프로그래머가 직접 지정한 기능을 수행한다.
기억은 나지 않지만 어디선가 본 표현으로 집계 라고 표현 한 곳이 있다.

  • 배열의 평균을 구하는 값
int[] numbers = {1, 3, 5, 8, 10, 13};
int sum = Arrays.stream(numbers).reduce((x,y) -> x + y).orElse(0);
  • Max값 가장 큰 값을 구하는 방법
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);
  • 위 Max값을 응용하여 가장 긴 문자열을 구하는 방법
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; 
        }));
profile
응애

0개의 댓글