Ответ
Лямбда-выражение в Java — это краткая форма записи анонимной функции, реализующей единственный абстрактный метод функционального интерфейса. Основная цель — лаконичная замена анонимных классов и поддержка функционального стиля программирования.
Ключевые применения:
- Работа с коллекциями и Stream API: Упрощение операций фильтрации, преобразования и агрегации.
- Обработка событий: Краткая реализация слушателей (listeners).
- Отложенное выполнение: Передача поведения в качестве параметра метода.
Пример: Слушатель события (до и после)
// Без лямбды (анонимный класс)
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Клик!");
}
});
// С лямбдой
button.addActionListener(e -> System.out.println("Клик!"));
Пример: Использование в Stream API
List<String> names = Arrays.asList("Anna", "Bob", "Alice");
// Фильтрация и сортировка с помощью лямбд
List<String> result = names.stream()
.filter(name -> name.startsWith("A"))
.sorted((a, b) -> a.compareTo(b))
.collect(Collectors.toList());
Преимущества:
- Лаконичность: Значительно сокращает объем шаблонного кода.
- Читаемость: Делает намерение разработчика более явным.
- Функциональный стиль: Позволяет писать более декларативный и выразительный код.