junior
Какова цель метода filter в стримах?
filter() — промежуточная операция, принимающая Predicate<T> и возвращающая стрим, содержащий только те элементы, для которых предикат вернул true. Элементы, не прошедшие проверку, исключаются из дальнейшей обработки.
Пример
List<String> names = List.of("Alice", "Bob", "Charlie", "Anna");
names.stream()
.filter(name -> name.startsWith("A"))
.forEach(System.out::println); // Alice, Anna
filter() не изменяет элементы — он только решает, пропускать элемент дальше по конвейеру или нет. Для преобразования элементов используется map(). Несколько вызовов filter() можно объединить в цепочку или комбинировать предикаты через and()/or().
На собеседовании:
filter— одна из самых часто используемых операций. Важно понимать, что она ленива и выполняется только при вызове терминальной операции.