Lambda-Ausdrücke in Java ermöglichen die kurze und klare Darstellung von Instanzen funktionaler Schnittstellen.
(a, b) -> a + b
Runnable r = () -> System.out.println("Hallo Welt");
Methodenreferenzen sind eine Kurzform für Lambda-Ausdrücke, die nur eine Methode aufrufen.
System.out::println
Streams bieten eine Möglichkeit, Sequenzen von Daten in einer funktionalen Stil zu manipulieren.
<String> stream = Stream.of("a", "b", "c"); Stream
.filter(s -> s.startsWith("a")).forEach(System.out::println); stream
.map(String::toUpperCase).forEach(System.out::println); stream
<String> result = stream.reduce((a, b) -> a + b); Optional
Streams können parallelisiert werden, um die Leistung zu verbessern.
.parallel().forEach(System.out::println); stream
List<String> list = Arrays.asList("a", "b", "c");
.stream().filter(s -> s.startsWith("a")).map(String::toUpperCase).forEach(System.out::println); list
List<String> newList = stream.collect(Collectors.toList());
Lambda-Ausdrücke und Streams sind Schlüsselmerkmale der funktionalen Programmierung in Java. Lambdas ermöglichen es, Instanzen funktionaler Schnittstellen kurz und prägnant zu repräsentieren, während Streams die Verarbeitung von Datensequenzen in einer deklarativen Weise erleichtern. Sie können auch für die parallele Datenverarbeitung verwendet werden, um die Leistung zu steigern.