Назад к вопросам
Middle
69
questionbank

Что такое лямбда-выражения в Java и какую функциональность они предоставляют?

Sobes Copilot

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

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

sobes.tech AI

Лямбда-выражения в Java (начиная с версии 8) — это компактный способ представления анонимных функций.

Предоставляют следующую функциональность:

  • Реализация функциональных интерфейсов: Лямбда-выражение реализует единственный абстрактный метод функционального интерфейса.
  • Параметризация поведения: Позволяют передавать поведение (логику) в качестве аргументов в методы.
  • Повышение читаемости кода: Заменяют анонимные внутренние классы для слушателей событий, компараторов и т.д., делая код более лаконичным.
  • Интеграция с Stream APИ: Основной способ работы с потоками данных для фильтрации, преобразования и агрегации.

Пример синтаксиса:

// (параметры) -> { тело выражения }

// Без параметров:
Runnable runnable = () -> System.out.println("Hello Lambda!");

// С одним параметром:
Consumer<String> greeter = name -> System.out.println("Hello, " + name);

// С несколькими параметрами:
BiFunction<Integer, Integer, Integer> adder = (a, b) -> a + b;

// С блоком кода:
Comparator<String> lengthComparator = (str1, str2) -> {
    int len1 = str1.length();
    int len2 = str2.length();
    return Integer.compare(len1, len2);
};