목차

스트림이란 무엇인가?

// 기존 자바 코드
// 누적 자료 필터링
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

파이프라인

스트림 시작하기