Найти в Дзене
DEBAGanov

Java 1273. Что такое лямбда?

1273. Что такое лямбда? Лямбда-выражения (lambda expressions) - это нововведение, которое появилось в Java 8. Лямбда-выражения представляют собой анонимные функции, которые могут использоваться вместо интерфейсов с одним абстрактным методом, таких как интерфейс Function или Comparable. Они позволяют более компактно и лаконично выражать функциональные конструкции, такие как обратные вызовы и потоки данных. Например, вот как можно использовать лямбда-выражения для сортировки списка строк в порядке возрастания: List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
Collections.sort(names, (s1, s2) -> s1.compareTo(s2)); Здесь лямбда-выражение (s1, s2) -> s1.compareTo(s2) определяет функцию сравнения строк, которая используется для сортировки списка. Код выше эквивалентен следующему коду с использованием интерфейса Comparator: Collections.sort(names, new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
}); Еще пример использовани

1273. Что такое лямбда?

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

Например, вот как можно использовать лямбда-выражения для сортировки списка строк в порядке возрастания:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));

Здесь лямбда-выражение (s1, s2) -> s1.compareTo(s2) определяет функцию сравнения строк, которая используется для сортировки списка. Код выше эквивалентен следующему коду с использованием интерфейса Comparator:

Collections.sort(names, new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});

Еще пример использования лямбда-выражения для создания объекта функционального интерфейса Runnable:

Runnable r = () -> {
System.out.println("This is a lambda expression");
};

Этот код эквивалентен следующему коду с использованием анонимного класса:

Runnable r = new Runnable() {
@Override public void run() {
System.out.println("This is an anonymous class");
}
};

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

IntBinaryOperator sum = (x, y) -> x + y;

Это эквивалентно следующему коду с использованием анонимного класса:

IntBinaryOperator sum = new IntBinaryOperator() {
@Override public int applyAsInt(int x, int y) {
return x + y;
}
};

В целом, лямбда-выражения позволяют упростить код и улучшить его читабельность.

1606 вопрос-ответ по Java

Курс Spring Framework

Tелеграмм каналDEBAGanov

Мое резюмеDEBAGanov