Gymterview
junior

Для чего нужен функциональный интерфейс BiPredicate?

BiPredicate<T, U> — функциональный интерфейс, принимающий два аргумента типов T и U и возвращающий boolean. Основной метод — test(T t, U u).

Используется для проверки условий, зависящих от двух значений. Как и Predicate, поддерживает default-методы and(), or() и negate() для комбинирования:

Пример
BiPredicate<String, Integer> lengthCheck = (str, len) -> str.length() > len;
lengthCheck.test("hello", 3); // true
lengthCheck.negate().test("hello", 3); // false

Этот интерфейс удобен при фильтрации данных, которые представлены парами, например, ключ-значение из Map.

На собеседовании: достаточно указать, что BiPredicate — двухаргументный аналог Predicate, и привести пример комбинирования.