Junior
Was sind Lambda-Ausdrücke in Java?
sobes.tech KI
Antwort von AI
Eine Lambda-Ausdruck ist eine kurze Form für anonyme Funktion, die die Methoden einer funktionalen Schnittstelle implementiert.
Struktur: (Parameter) -> { Ausdrucksbody }.
| Teil | Beschreibung | Beispiele |
|---|---|---|
Parameter |
Parameterliste, kann leer sein. Typen sind optional (werden abgeleitet). | ()<br>x<br>(x, y)<br>(int x, String y) |
-> |
Pfeiloperator. Trennt Parameter und Body. | -> |
Ausdrucksbody |
Lambda-Body. Kann ein Ausdruck oder ein Codeblock sein. | x * x<br>{ System.out.println(x); } |
Beispiele:
-
Implementierung funktionaler Schnittstellen:
import java.util.function.Consumer; // Vorher: traditionelle anonyme Klasse Consumer<String> consumerAnon = new Consumer<String>() { @Override public void accept(String s) { System.out.println(s); } }; consumerAnon.accept("Traditionelle anonyme Klasse"); // Mit Lambda-Ausdruck Consumer<String> consumerLambda = s -> System.out.println(s); consumerLambda.accept("Lambda-Ausdruck"); -
Arbeit mit Streams API:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Filtern gerader Zahlen mit Lambda List<Integer> evenNumbers = numbers.stream() .filter(n -> n % 2 == 0) .collect(Collectors.toList()); System.out.println(evenNumbers); // Ausgabe: [2, 4] // Quadrieren der Zahlen List<Integer> squares = numbers.stream() .map(n -> n * n) .collect(Collectors.toList()); System.out.println(squares); // Ausgabe: [1, 4, 9, 16, 25]
Vorteile:
- Kürzerer Code im Vergleich zu anonymen Klassen.
- Verbesserte Lesbarkeit bei einfachen Operationen.
- Einfachere Nutzung mit Streams API und anderen funktionalen APIs.