Java: Стримы
Теория: Фильтрация
Операция filter() (фильтрация) позволяет отсеивать элементы из потока данных на основе заданных критериев. Фильтрация пожалуй самая популярная операция в программировании. Разберем ее на примере отбора четных чисел. Как бы мы выполнили эту операцию без стримов:
В отличие от операции отображения, фильтрация не выполняет преобразования элемента, она лишь вычисляет необходимость добавить это значение в результирующую коллекцию. Лямбда-функция в этом случае называется предикатом, так как ее задача вернуть булево значение. Если значение нужно добавить в новую коллекцию, тогда возвращается true, иначе false. Стримы позволяют выразить эту операцию в одну строчку:
Фильтрация всегда возвращает неизмененные элементы, но их количество может быть любым, включая все элементы исходной коллекции если они все удовлетворяют предикату и не включая никакие элементы в обратной ситуации. Тогда возвращается пустая коллекция.



