<aside> 💡 ***이 장의 내용
필터링, 슬라이싱, 매칭 검색, 매칭, 리듀싱 특정 범위의 숫자와 같은 숫자 스트림 사용하기 다중 소스로부터 스트림 만들기 무한 스트림***
</aside>
4장에서는 스트림을 이용해서 외부 반복을 내부 반복으로 바꾸는 방법을 알아보았다.
List<Dish> vegetarianDishes = new ArrayList<>();
for(Dish d : menu) {
if(d.isVegetarian()){
vegetarianDishes.add(d);
}
}
filter
와 collect
연산을 지원하는 스트림 API를 이용해서 데이터 컬렉션 반복을 내부적으로 처리할 수 있다.import static java.util.stream.Collectors.toList;
List<Dish> vegetarianDishes =
menu.stream()
.filter(Dish::isVegetarian)
.collect(toList());
스트림 API 내부적으로 다양한 최적화가 이루어질 수 있다.
<aside> 💡 스트림의 요소를 선택하는 방법, 즉 프레디케이트 필터링 방법과 고유 요소만 필터링하는 방법을 알아보자.
</aside>