← Назад ко всем вопросам

Что такое lambda функция

1️⃣ Как кратко ответить

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

2️⃣ Подробное объяснение темы

Lambda функции в Java были введены в версии Java 8 и представляют собой способ создания анонимных функций, которые можно использовать для реализации функциональных интерфейсов. Функциональный интерфейс — это интерфейс с единственным абстрактным методом. Lambda функции позволяют писать более компактный и читаемый код, особенно при работе с коллекциями и потоками данных.

Зачем нужны lambda функции?

Lambda функции упрощают код, делая его более выразительным и кратким. Они позволяют передавать поведение в качестве параметра, что особенно полезно при работе с коллекциями, потоками и в функциональном программировании. Это делает код более гибким и модульным.

Как работают lambda функции?

Lambda функция состоит из трех частей:

  1. Список параметров: Переменные, которые принимает функция.
  2. Стрелка (->): Разделяет параметры и тело функции.
  3. Тело функции: Код, который выполняется при вызове функции.

Пример использования lambda функции

Рассмотрим пример, где мы используем lambda функцию для сортировки списка строк по их длине:

import java.util.Arrays;
import java.util.List;
​
public class LambdaExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Anna", "Alexander", "Bob", "Charlie");
​
        // Сортировка списка строк по длине с использованием lambda функции
        names.sort((String a, String b) -> a.length() - b.length());
​
        // Вывод отсортированного списка
        names.forEach(System.out::println);
    }
}

Объяснение кода:

  • List<String> names = Arrays.asList("Anna", "Alexander", "Bob", "Charlie");

    • Создаем список строк с именами.
  • names.sort((String a, String b) -> a.length() - b.length());

    • Используем метод sort для сортировки списка. В качестве параметра передаем lambda функцию.
    • (String a, String b) -> a.length() - b.length() — это lambda функция:
      • (String a, String b) — список параметров, где a и b — строки, которые сравниваются.
      • -> — стрелка, разделяющая параметры и тело функции.
      • a.length() - b.length() — тело функции, которое возвращает разницу в длине строк a и b. Это определяет порядок сортировки.
  • names.forEach(System.out::println);

    • Используем метод forEach для вывода каждого элемента списка. System.out::println — это ссылка на метод, которая выводит строку на консоль.

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

Тема: Stream API
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки