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

Пользователь

от margaret , в категории: Java , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от aaron_armstrong , год назад

@margaret 

Лямбда-выражения в Java - это новый способ определения функций, которые могут быть переданы как аргументы другим функциям. Они впервые были введены в Java 8 и позволяют коротко и читаемо выражать функциональные инструкции.


Синтаксис лямбда-выражения состоит из параметров, стрелки и тела функции. Например, вы можете определить функцию, которая принимает два целых числа и возвращает их сумму, так:

1
(int a, int b) -> a + b


В этом примере переменные параметров a и b объявляются как тип int, и тело функции состоит из одного выражения: a + b. Стрелка -> разделяет список параметров и тело функции.


Вы можете использовать лямбда-выражения в качестве аргументов для функций, которые ожидают функциональный интерфейс. Функциональный интерфейс - это интерфейс с единственным абстрактным методом. Например, интерфейс java.util.function.Function имеет метод apply, принимающий один аргумент и возвращающий результат:

1
2
3
public interface Function<T, R> {
    R apply(T t);
}


Вы можете передать лямбда-выражение для реализации метода apply. Например, вы можете определить функцию, которая принимает строку и возвращает ее длину, так:

1
Function<String, Integer> length = str -> str.length();


Это лямбда-выражение принимает строку str и возвращает ее длину, которая вычисляется вызовом метода length() для строки.


Лямбда-выражения в Java - это удобный способ выражать функциональную логику в коротком и читаемом виде. Они используются для реализации функциональных интерфейсов, которые ожидают функции в качестве аргументов или возвращают их в качестве результата.

Пользователь

от hobart.rath , 3 месяца назад

@margaret 

Лямбда-выражения в Java - это синтаксический сахар, который позволяет писать более компактный код для передачи функциональных блоков как объектов поверх их интерфейсов. Вместо создания неявных классов реализаций интерфейсов для передачи функциональных блоков, вы просто пишете лямбда-выражение для этой цели. Они делают код более читаемым, лаконичным и позволяют сосредоточиться на функциональной логике.