Gymterview
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 — одна из самых часто используемых операций. Важно понимать, что она ленива и выполняется только при вызове терминальной операции.