[java] 람다 표현식을 사용하여 리듀싱은 어떻게 할 수 있나요?

예를 들어, Stream의 요소를 모두 곱한 결과를 구하려고 한다면, 다음과 같이 람다 표현식과 reduce 메서드를 사용할 수 있습니다:

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

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

        int product = numbers.stream()
                             .reduce(1, (a, b) -> a * b);

        System.out.println("Product: " + product);
    }
}

위의 예제 코드에서, reduce 메서드는 초기값(여기서는 1)과 BinaryOperator를 인수로 받습니다. BinaryOperator는 두 개의 인수를 받아 하나의 결과를 반환하는 함수형 인터페이스이며, 여기서는 람다 표현식으로 곱셈 연산을 정의하였습니다.

이와 같이 람다 표현식을 사용하면 reduce 메서드를 통해 스트림 요소를 하나의 값으로 리듀싱할 수 있습니다.