책을 분류하여 조회하는 다양한 메서드 작성
filter
로 카테고리가 '여행'인 책 분류
forEach
로 조건에 맞는 책 제목 하나씩 출력
bookList.stream()
.filter(book -> book.getCategory().equals("여행"))
.forEach(f -> System.out.println(f.getBookName()));
bookList.stream()
.filter(book -> book.getPrice() <= 16200)
.forEach(f -> System.out.println(f.getBookName()));
bookList.stream()
.filter(book -> book.getBookName().contains("경제"))
.forEach(f -> System.out.println(f.getBookName()));
mapToDouble
로 Book::getPrice
책의 가격을 double 값으로 매핑
max
로 최대값 탐색, getAsDouble
로 double 타입으로 반환
double maxPrice = bookList.stream()
.mapToDouble(Book::getPrice).max().getAsDouble();
System.out.println("책 목록 중 가장 비싼 금액: " + maxPrice);
double sum = bookList.stream()
.filter(book -> book.getCategory().equals("IT"))
.mapToDouble(Book::getPrice).sum();
System.out.println("카테고리 IT 책들의 가격 합: " + sum);
map
을 사용해서 책의 가격을 수정
return된 book 객체들을 toList
를 통해 list로 생성
List<Book> discountedBookList = bookList.stream().
filter(book -> book.getCategory().equals("IT"))
.map(book -> {
book.setPrice(book.getPrice() * 0.6);
return book;
}).toList();
for (Book book : discountedBookList) {
System.out.println("할인된 책 제목: " + book.getBookName());
System.out.println("할인된 책 가격: " + book.getPrice() + "\n");
}