Назад к вопросам
Junior
85
questionbank

Для чего предназначен функциональный интерфейс BiPredicate<T, U> в Java?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

BiPredicate<T, U> — это функциональный интерфейс, представляющий предикат, который принимает два аргумента типов T и U и возвращает булево значение. Используется для тестирования, соответствует ли пара объектов определенному условию.

Основные методы:

  • boolean test(T t, U u): Выполняет тестирование на заданных аргументах.
  • default BiPredicate<T, U> and(BiPredicate<? super T, ? super U> other): Возвращает композитный предикат, представляющий логическое И этого предиката и другого.
  • default BiPredicate<T, U> or(BiPredicate<? super T, ? super U> other): Возвращает композитный предикат, представляющий логическое ИЛИ этого предиката и другого.
  • default BiPredicate<T, U> negate(): Возвращает предикат, представляющий логическое отрицание этого предиката.

Пример использования:

import java.util.function.BiPredicate;

public class BiPredicateExample {

    public static void main(String[] args) {

        BiPredicate<String, Integer> lengthCheck = (str, len) -> str.length() == len;

        System.out.println(lengthCheck.test("Hello", 5)); // true
        System.out.println(lengthCheck.test("World", 3)); // false

        BiPredicate<String, Integer> startsWithH = (str, len) -> str.startsWith("H");

        BiPredicate<String, Integer> combinedPredicate = lengthCheck.and(startsWithH);

        System.out.println(combinedPredicate.test("Hello", 5)); // true
        System.out.println(combinedPredicate.test("World", 5)); // false
    }
}