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

Что такое лямбда-выражения в Java?

Sobes Copilot

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

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

sobes.tech AI

Лямбда-выражение в Java - это анонимная (безымянная) функция, которая реализует функциональный интерфейс.

Основные характеристики:

  • Не имеют имени.
  • Могут иметь параметры.
  • Тело может состоять из одного выражения или блока операторов.
  • Не указывается тип возвращаемого значения (выводится автоматически).
  • Необходимы для функционального программирования и работы с потоками (Streams API).

Синтаксис:

// Без параметров
() -> { // тело }

// С одним параметром (тип можно опустить)
param -> expression

// С несколькими параметрами (тип можно опустить, нужны скобки)
(param1, param2) -> { // тело }

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

// Функциональный интерфейс (встроенный)
import java.util.function.Consumer;

// Реализация с помощью лямбды
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Hello world!");

// Использование в методе, принимающем функциональный интерфейс
import java.util.Arrays;
import java.util.List;

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n)); // forEach принимает Consumer

Преимущества:

  • Более лаконичный код.
  • Улучшенная читаемость (в простых случаях).
  • Возможность использовать функциональное программирование.
  • Упрощение работы с коллекциями и многопоточностью.

Ограничения:

  • Могут быть сложны для понимания вложенные или длинные лямбды.
  • Не имеют состояния (не могут иметь полей экземпляра).