스트림
은 자바 API에 새로 추가된 기능으로, 스트림을 이용하면 선언형(즉, 데이터를 처리하는 임시 구현 코드 대신 질의로 표현할 수 있다.)// 기존 자바 코드
// 누적 자료 필터링
List<Dish> lowCaloricDishes = new ArrayList<>();
for(Dish d : menu) {
lowCaloricDishes.add(d);
}
// 익명 클래스로 요리 정렬
Collections.sort(lowCaloricDishes, new Comparator<Dish>() {
public int compare(Dish dl, Dish d2) {
return Integer.compare(dl.getCalories(), d2.getCalories());
}
});
// 정렬된 리스트를 처리하면서 요리 이름 선택
List(String> lowCaloricDishesName = new ArrayList<>();
for(Dish d : lowCaloricDishes) {
lowCaloricDishesName.add(d.getName());
}
// 최신 자바 8 코드
List<String> lowCaloricDishesName =
menu.stream()
.filter(d -> d.getCalories() < 400)
.sorted(comparing(Dish::getCalories))
.map(Dish::getName)
.collect(toList());
http://drive.google.com/uc?export=view&id=0ByLqiEM75qEzMFFJVVI0bGRuVk0
파이프라인
filter