[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()
메소드와 람다 표현식을 사용하면 매우 간편하게 데이터를 원하는 조건으로 필터링할 수 있습니다.