<aside> 💡 ***이 장의 내용

필터링, 슬라이싱, 매칭 검색, 매칭, 리듀싱 특정 범위의 숫자와 같은 숫자 스트림 사용하기 다중 소스로부터 스트림 만들기 무한 스트림***

</aside>

4장에서는 스트림을 이용해서 외부 반복을 내부 반복으로 바꾸는 방법을 알아보았다.

List<Dish> vegetarianDishes = new ArrayList<>();

for(Dish d : menu) {
    if(d.isVegetarian()){
        vegetarianDishes.add(d);
    }
}
import static java.util.stream.Collectors.toList;

List<Dish> vegetarianDishes =
    menu.stream()
        .filter(Dish::isVegetarian)
        .collect(toList());

스트림 API 내부적으로 다양한 최적화가 이루어질 수 있다.

5.1 필터링


<aside> 💡 스트림의 요소를 선택하는 방법, 즉 프레디케이트 필터링 방법과 고유 요소만 필터링하는 방법을 알아보자.

</aside>

5.1.1 프레디케이트로 필터링