Метод filter в Java работает с функциональным интерфейсом Predicate.
Predicate - это функциональный интерфейс, определенный в пакете java.util.function. Он представляет собой функцию, которая принимает один аргумент и возвращает булево значение. Метод filter используется для фильтрации элементов в потоке данных на основе заданного условия, представленного в виде объекта типа Predicate.
Пример использования метода filter с функциональным интерфейсом Predicate:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // Выводит [2, 4, 6, 8, 10]
В данном примере метод filter используется для фильтрации только четных чисел из списка numbers. Лямбда-выражение n -> n % 2 == 0 является предикатом, который проверяет, является ли число четным. Только числа, для которых предикат возвращает true, проходят через фильтр и сохраняются в новом списке evenNumbers.
Таким образом, метод filter позволяет выбирать только те элементы, которые удовлетворяют заданному условию, представленному в виде функционального интерфейса Predicate.
Если вам понравилось, буду признателен за подписку.