Довідники Java Lambda

Що таке Lambda в Java?

Лямбда-вирази у Java були представлені у версії Java 8 і дозволяють писати компактний та зрозумілий код, особливо при роботі з колекціями та функціональними інтерфейсами. Лямбда-вираз — це короткий спосіб представлення анонімних функцій, які можна передавати та використовувати як об'єкти.


Синтаксис лямбда-виразу складається з трьох частин: списку параметрів, стрілочного оператора -> та тіла виразу. Параметри записуються у круглих дужках, після стрілки вказується виконуваний код. Якщо код складається з одного рядка, фігурні дужки можна опустити.


Основні переваги використання лямбда-виразів
  1. Покращення читабельності коду, особливо при роботі зі стрімами (Streams).
  2. Зменшення обсягу коду завдяки відмові від анонімних класів для реалізації функціональних інтерфейсів.
  3. Гнучкість у використанні методів колекцій, таких як filter, map та reduce.


import java.util.Arrays;
import java.util.List;

public class LambdaExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Аліса", "Боб", "Чарлі");

        // Використання лямбда-виразу для виведення кожного елемента
        names.forEach(name -> System.out.println(name));

        // Фільтрація елементів за допомогою лямбда-виразу
        names.stream()
             .filter(name -> name.startsWith("А"))
             .forEach(System.out::println);
    }
}


У наведеному прикладі лямбда-вирази використовуються для обробки списку рядків. Метод forEach приймає лямбда-вираз, який виводить кожен елемент списку. Також показано приклад фільтрації елементів за допомогою методу filter, де лямбда-вираз визначає умову фільтрації.


Варто зазначити, що лямбда-вирази можна використовувати лише з функціональними інтерфейсами. Функціональний інтерфейс — це інтерфейс з одним абстрактним методом, наприклад Runnable, Comparator або користувацький інтерфейс, позначений анотацією @FunctionalInterface.


@FunctionalInterface
interface Greeting {
    void sayHello(String name);
}

public class CustomLambda {
    public static void main(String[] args) {
        // Реалізація через лямбда-вираз
        Greeting greeting = name -> System.out.println("Привіт, " + name);
        greeting.sayHello("Світ");
    }
}


Цей приклад демонструє створення власного функціонального інтерфейсу та його використання з лямбда-виразом. Така структура дозволяє гнучко описувати функціональність без необхідності створення анонімних класів.

Коментарі
Додати коментар

Поки що коментарів немає