WYRAŻENIA LAMBDA

Wyrażenia lambda to krótka składnia służąca do tworzenia anonimowych funkcji w języku Java. Wprowadzone w Java 8, umożliwiają przekazywanie zachowania jako argumentów metod, co czyni kod bardziej czytelnym i zwięzłym.

Składnia wyrażenia lambda

(parametry) -> { ciało funkcji }


parametry – lista argumentów (może być pusta)

  • -> – operator lambda
  • ciało funkcji – kod wykonywany po wywołaniu lambdy


Przykłady

  1. Lambda bez parametrów:
    Runnable r = () -> System.out.println("Hello, world!"); new Thread(r).start();
    📌 Działa tak samo jak klasy anonimowe Runnable.

  2. Lambda z jednym parametrem
    jConsumer<String> print = s -> System.out.println(s); print.accept("Cześć!");

  3. Lambda z wieloma parametrami
    BiFunction<Integer, Integer, Integer> suma = (a, b) -> a + b; System.out.println(suma.apply(5, 10)); // 15


Zastosowanie wyrażeń lambda

Wyrażenia lambda są często stosowane w:
Interfejsach funkcyjnych (np. Predicate, Function, Consumer)
Strumieniach (Stream API)
Wielowątkowości (Runnable)
Sortowaniu kolekcji (Comparator)


Przykład: Sortowanie listy za pomocą lambdy

import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Kasia", "Adam", "Zenek", "Bartek");

        names.sort((a, b) -> a.compareToIgnoreCase(b));

        System.out.println(names); // [Adam, Bartek, Kasia, Zenek]
    }
}

Wnioski

Skracają kod – eliminują konieczność pisania klas anonimowych
Czytelniejsze i bardziej zwięzłe niż tradycyjne implementacje interfejsów
Ułatwiają programowanie funkcyjne w Javie