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

스트림을 변환하는 가장 일반적인 메서드 중 하나는 map이며, 데이터를 다른 형태로 매핑하는 데 사용됩니다. 예를 들어, 리스트의 각 요소를 제곱하여 새로운 스트림을 생성하려면 다음과 같이 작성할 수 있습니다:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
                                       .map(n -> n * n)
                                       .collect(Collectors.toList());

이 코드에서 map 메서드는 각 요소를 제곱하여 새로운 스트림을 생성하고, collect 메서드는 해당 스트림을 리스트로 변환합니다.

또 다른 일반적인 메서드는 filter이며, 조건에 맞는 요소만을 걸러내는 데 사용됩니다. 예를 들어, 짝수만을 걸러내는 코드는 다음과 같이 작성할 수 있습니다:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
                                   .filter(n -> n % 2 == 0)
                                   .collect(Collectors.toList());

이 외에도 sorted, flatMap 등의 다양한 메서드를 사용하여 스트림을 변환할 수 있습니다. 람다 표현식을 활용하여 각 메서드에 해당하는 조건을 간결하게 작성할 수 있습니다.

참고 문헌: