Назад к вопросам
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
Преимущества:
- Более лаконичный код.
- Улучшенная читаемость (в простых случаях).
- Возможность использовать функциональное программирование.
- Упрощение работы с коллекциями и многопоточностью.
Ограничения:
- Могут быть сложны для понимания вложенные или длинные лямбды.
- Не имеют состояния (не могут иметь полей экземпляра).