Лямбда-выражение в программировании - это анонимная функция, которая может быть использована вместо объявления метода или создания объекта интерфейса с одним методом (интерфейс функционального программирования). Лямбда-выражения были введены в Java 8 и предоставляют более компактный и удобный способ написания кода. Структура лямбда-выражения выглядит следующим образом: (параметры) -> {тело} - Параметры: Это список параметров, которые принимает лямбда-выражение. Может быть пустым, одним параметром или списком параметров, разделенных запятой. - Стрелка `->` : Разделяет параметры и тело лямбда-выражения. - Тело: Это набор инструкций, которые выполняются внутри лямбда-выражения. Может быть одним выражением или блоком кода в фигурных скобках. Особенности использования лямбда-выражений: - Лямбда-выражения могут быть использованы для реализации функциональных интерфейсов, то есть интерфейсов с одним абстрактным методом. - Лямбда-выражения могут быть переданы как аргументы в методы или сохранены в переменных. - Лямбда-выражения позволяют писать более компактный и читаемый код, особенно при работе с коллекциями и потоками данных. - Лямбда-выражения имеют доступ к переменным из окружающей области видимости (это называется захватом переменных). 1. Пример использования лямбда-выражения в качестве аргумента метода: List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); names.forEach(name -> System.out.println(name)); В этом примере лямбда-выражение `name -> System.out.println(name)` передается в метод `forEach()` для выполнения определенного действия для каждого элемента списка. 2. Пример использования лямбда-выражения для сортировки коллекции: List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 9); Collections.sort(numbers, (a, b) -> a.compareTo(b)); В этом примере лямбда-выражение `(a, b) -> a.compareTo(b)` используется для сравнения двух чисел и определения порядка сортировки. 3. Пример использования лямбда-выражения для фильтрации коллекции: List<String> fruits = Arrays.asList("apple", "banana", "cherry", "grape"); List<String> filteredFruits = fruits.stream() .filter(fruit -> fruit.startsWith("a")) .collect(Collectors.toList()); В этом примере лямбда-выражение `fruit -> fruit.startsWith("a")` используется для фильтрации фруктов, начинающихся с буквы "a". Лямбда-выражения в Java предоставляют более функциональный и гибкий подход к программированию, позволяя писать более лаконичный и выразительный код.