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

스트림을 사용하여 데이터를 처리할 때 원하는 조건에 맞는 요소만을 선택해서 새로운 스트림을 생성할 수 있습니다. 이를 위해 filter() 메소드를 사용하며, 람다 표현식을 인수로 전달하여 요소를 선택하는 조건을 지정합니다.

다음은 간단한 예제 코드입니다.

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, 6, 7, 8, 9, 10);
        
        List<Integer> evenNumbers = numbers.stream()
                                           .filter(n -> n % 2 == 0)
                                           .collect(Collectors.toList());
        
        System.out.println("Even numbers: " + evenNumbers);
    }
}

위 코드에서 numbers 리스트에서 짝수만을 필터링하여 새로운 리스트를 만들었습니다. filter() 메소드에 전달된 람다 표현식인 n -> n % 2 == 0은 짝수를 선택하는 조건을 정의하고 있습니다.

이제, evenNumbers 리스트는 2, 4, 6, 8, 10을 포함하고 있을 것입니다.

스트림 API의 filter() 메소드와 람다 표현식을 사용하면 매우 간편하게 데이터를 원하는 조건으로 필터링할 수 있습니다.