Назад к вопросам
Middle
71
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

Основные характеристики:

  • Анонимность: Не имеет имени.
  • Функциональный интерфейс: Лямбда-выражение всегда связано с функциональным интерфейсом (интерфейсом с одним абстрактным методом).
  • Синтаксис: (параметры) -> { тело }

Пример использования с функциональным интерфейсом Consumer:

import java.util.function.Consumer;

// Функциональный интерфейс Consumer<T> имеет один абстрактный метод accept(Т t)
Consumer<String> greeting = (name) -> {
    System.out.println("Привет, " + name);
};

greeting.accept("Мир"); // Вывод: Привет, Мир

Пример использования с интерфейсом Runnable:

// Интерфейс Runnable имеет один абстрактный метод run()
Runnable task = () -> {
    System.out.println("Задача выполняется в отдельном потоке");
};

new Thread(task).start(); // Запуск задачи в новом потоке

Синтаксические варианты:

  • Без параметров: () -> { System.out.println("Hello"); }
  • Один параметр без скобок: name -> System.out.println("Привет, " + name)
  • Несколько параметров со скобками и типами: (int a, int b) -> { return a + b; }
  • Несколько параметров со скобками без типов (вывод типов): (a, b) -> a + b
  • Однострочное тело без return: (a, b) -> a + b
  • Многострочное тело с фигурными скобками и return (если требуется): (a, b) -> { int sum = a + b; return sum; }

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