TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #117 6.47K
В чём отличие Supplier'а от Consumer'а ?
Спросят с вероятностью 12%

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

Supplier

Представляет собой функциональный интерфейс, который поставляет результат заданного типа T. Интерфейс не принимает никаких аргументов, но возвращает значение типа T. Это может быть полезно, когда вам нужно лениво генерировать или поставлять значения, например, при создании новых объектов или выполнении операций, результат которых необходимо вернуть.

Пример использования Supplier:
Supplier<String> stringSupplier = () -> "Hello, World!";
System.out.println(stringSupplier.get()); // Выводит "Hello, World!"

Consumer

Это функциональный интерфейс, предназначенный для выполнения операции над объектом типа T. Он принимает один аргумент и не возвращает результат (возвращаемый тип void). Это полезно, когда вам нужно выполнить какое-либо действие или операцию над объектом, например, напечатать его, изменить его состояние и т.д., без возвращения какого-либо значения.

Пример использования Consumer:
Consumer<String> stringConsumer = s -> System.out.println(s);
stringConsumer.accept("Hello, World!"); // Выводит "Hello, World!"


Основное отличие между Supplier и Consumer заключается в их назначении и способе работы:

✅Supplier используется для получения или генерации данных без каких-либо входных параметров. Он «поставляет» данные.
✅Consumer используется для выполнения операций над данными, которые он принимает в качестве параметров, и не возвращает никакого результата. Он «потребляет» данные.

Supplier и Consumer представляют две разные операции: поставку данных и их потребление соответственно, что делает их важными компонентами для реализации функционального стиля программирования.

👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
  • 👍 39
  • ❤ 4
More from @easy_java_ru
  1. Oct 12, 2026🤔 Жизненный цикл сервлетов? 1. Загрузка и инициализация (init); 2. Обработка запроса (ser…
  2. Oct 12, 2026🤔 Как остановить поток? Остановить поток в Java можно несколькими способами, но важно пом…
  3. Oct 11, 2026🤔 Какой класс позволяет читать данные из входного байтового потока в формате примитивных…
  4. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  5. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  6. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →