Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Book> books = List.of(new Book("Dune", 1965),
new Book("Hamlet", 1603), new Book("Emma", 1815));
System.out.println(books.stream()
.filter(b -> b.year() > 1700)
.map(Book::title)
.toList());
}
}
record Book(String title, int year) {}[Dune, Emma]
- Ждать
[Hamlet]:filterоставляет книги, для которыхb.year() > 1700истинно, а остальные отбрасывает. - Ждать, что
Book::titleне скомпилируется: метод чтения записи называется как её компонент,title(), и на него можно сослаться.
- Как напечатать не названия, а число таких книг?
- Что будет, если поменять местами
filterиmapв этом конвейере?