В последнее время я вижу много кода в нескольких проектах, использующих поток для фильтрации объектов, например:
library.stream()
.map(book -> book.getAuthor())
.filter(author -> author.getAge() >= 50)
.map(Author::getSurname)
.map(String::toUpperCase)
.distinct()
.limit(15)
.collect(toList()));
Есть ли преимущества использования этого вместо прямого запроса HQL/SQL в базу данных, возвращающую уже отфильтрованные результаты.
Разве не второй aproach гораздо быстрее?