[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
메서드를 통해 스트림 요소를 하나의 값으로 리듀싱할 수 있습니다.