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, и привести пример комбинирования.