Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: Predicate, Function, Consumer, functional interface, lambda, Java

Что такое Predicate, Function, Consumer?

Вопрос проверяет знание функциональных интерфейсов Java, используемых в лямбда-выражениях и Stream API.

Короткий ответ

Predicate, Function и Consumer — это функциональные интерфейсы в Java. Predicate принимает аргумент и возвращает boolean, используется для фильтрации. Function принимает один аргумент и возвращает результат другого типа, применяется для преобразования данных. Consumer принимает аргумент и ничего не возвращает, используется для выполнения действий, например, вывода в консоль.

Длинный ответ

Функциональные интерфейсы в Java

Predicate, Function и Consumer — это встроенные функциональные интерфейсы из пакета java.util.function, которые появились в Java 8 для поддержки лямбда-выражений и Stream API. Они позволяют передавать поведение как параметр метода, делая код более гибким и лаконичным.

Predicate

Интерфейс Predicate содержит метод test(T t), который принимает объект типа T и возвращает boolean. Он часто используется для фильтрации элементов в коллекциях или стримах.

Predicate<String> isLong = s -> s.length() > 5;
boolean result = isLong.test("Hello"); // false

Function

Интерфейс Function имеет метод apply(T t), который принимает объект типа T и возвращает объект типа R. Применяется для преобразования данных, например, извлечения поля или изменения формата.

Function<String, Integer> getLength = s -> s.length();
int len = getLength.apply("Java"); // 4

Consumer

Интерфейс Consumer содержит метод accept(T t), который принимает объект типа T и ничего не возвращает (void). Используется для выполнения побочных эффектов, таких как вывод на экран или запись в файл.

Consumer<String> print = s -> System.out.println(s);
print.accept("Hello"); // выводит Hello

Применение в Stream API

Эти интерфейсы активно используются в методах Stream API: filter (Predicate), map (Function), forEach (Consumer). Например:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
     .filter(s -> s.length() > 3)   // Predicate
     .map(String::toUpperCase)        // Function
     .forEach(System.out::println);   // Consumer

Вывод: Predicate, Function и Consumer — это основа функционального программирования в Java. Их стоит применять при работе с коллекциями, стримами и для передачи простых операций в методы, чтобы избежать избыточного кода и улучшить читаемость.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • Java

    Java

Ключевые слова

#Predicate

#Function

#Consumer

#functional interface

#lambda

#Java

Подпишись на Java Developer в телеграм