[java] 람다 표현식을 사용하여 스트림을 어떻게 요소를 조합할 수 있나요?

자바 8 이상부터 도입된 람다 표현식과 스트림 API 덕분에 컬렉션의 요소들을 손쉽게 조합할 수 있습니다. 람다 표현식은 익명 함수를 작성하는 방법으로, 간결한 코드를 작성할 수 있도록 해주는 기능입니다. 스트림은 컬렉션을 함수형 프로그래밍 방식으로 처리할 수 있는 기능을 제공합니다. 이 둘을 조합하면 강력한 기능을 활용할 수 있습니다.

다음은 람다 표현식과 스트림 API를 사용하여 요소를 조합하는 간단한 예제입니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

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);

        // 짝수인 요소들만 필터링하여 리스트로 변환
        List<Integer> evenNumbers = numbers.stream()
                                           .filter(num -> num % 2 == 0)
                                           .collect(Collectors.toList());
        System.out.println("짝수인 요소들: " + evenNumbers);
    }
}

이 예제에서 reduce 메서드는 스트림의 모든 요소를 반복하면서 요소들을 서로 연산하여 최종 결과를 얻습니다. 그리고 filter 메서드는 주어진 조건에 맞는 요소들만 걸러내어 새로운 리스트를 생성합니다.

이런 식으로 람다 표현식과 스트림 API를 활용하면, 보다 간결하고 가독성이 좋은 코드를 작성할 수 있습니다.

더 많은 정보는 Java 공식 문서를 참고하시기 바랍니다.