Lambda · Урок 3/10
30%
⏱ 10–15 min

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

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"));
    }
}

Видео объяснение

Предпочитаете видеоформат? Посмотрите этот урок с примерами и объяснениями.

Java программирование

1. Введение в Java
2. Запуск Java
3. Синтаксис Java
4. Операторы Java
5. Условия и циклы
6. Массивы
7. Алгоритмы
8. Git и GitHub
9. ООП
10. static
11. Object
12. Интерфейсы, enum
13. Wrapper классы
14. String
15. Localization& Internationalization
16. Date & Time
17. Generics
18. Lambda
19. Коллекции
20. Stream API
21. Исключения
22. I/O
23. Reflection & JavaDoc
24. Сериализация
25. Maven
26. SQL
27. JDBC
28. Многопоточность