[java] reduce() 메서드를 이용한 스트림 요소 축소 방법

reduce() 메서드는 두 개의 매개변수를 가지며, 첫 번째 매개변수는 초기값으로 사용될 값이고, 두 번째 매개변수는 BinaryOperator 인터페이스를 구현하는 람다식입니다. 이 람다식은 스트림의 요소들을 하나씩 순회하며 연산을 수행하고, 결과 값을 반환합니다.

아래는 reduce() 메서드를 이용하여 스트림 요소를 축소하는 예시입니다.

import java.util.Arrays;
import java.util.List;

public class StreamReduceExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

        // 모든 요소의 합 구하기
        int sum = numbers.stream()
                .reduce(0, (a, b) -> a + b);
        System.out.println("Sum: " + sum);

        // 최댓값 구하기
        int max = numbers.stream()
                .reduce(0, (a, b) -> a > b ? a : b);
        System.out.println("Max: " + max);

        // 최솟값 구하기
        int min = numbers.stream()
                .reduce(numbers.get(0), (a, b) -> a < b ? a : b);
        System.out.println("Min: " + min);
    }
}

위 코드에서는 초기값으로 0을 설정하고, 각각의 연산에 따라 합, 최댓값, 최솟값을 구하고 출력합니다.

스트림의 요소를 축소하는 데 reduce() 메서드를 사용하면 간편하게 다양한 연산을 수행할 수 있습니다. 다양한 연산을 구현하여 스트림을 효율적으로 처리할 수 있습니다.

참고 자료: