Java: Интерфейс Predicate

Author: Tatyana Milkina

Predicate - это встроенный функциональный интерфейс, добавленный в Java SE 8 в пакет java.util.function.

Принимает на вход значение, проверяет состояние и возвращает boolean значение в качестве результата.

Predicate подтверждает какое-то значение как true или false.

Описание интерфейса Predicate:

@FunctionalInterface
public interface Predicate<T> {
    boolean test(T t);
   }

Функциональный дескриптор интерфейса:

T -> boolean

Рассмотрим пример использования интерфейса Predicate для нахождения отрицательных чисел:

import java.util.function.Predicate;

public class PredicateExample1 {
    public static void main(String[] args) {
        Predicate<Integer> negative = i -> i < 0;
        System.out.println(negative.test(-6));
        System.out.println(negative.test(6));
        System.out.println(negative.test(0));
    }
}

Predicate интерфейс содержит методы по умолчанию:

default Predicate<T> and(Predicate<? super T> other);
default Predicate<T> or(Predicate<? super T> other);
default Predicate<T> negate();

Следующий пример демонстрирует использование метода and() интерфейса Predicate:

import java.util.function.Predicate;

public class PredicateExample2 {
    public static void main(String[] args) {
        Predicate<String> containsA = t -> t.contains("A");
        Predicate<String> containsB = t -> t.contains("B");
        System.out.println(containsA.and(containsB).test("ABCD"));
    }
}
Read also:
Comments