Heute wirst du lernen:
filter, map, reduceAm Ende wirst du in der Lage sein, Streams und Lambdas zu nutzen, um Collections kompakt zu verarbeiten.
Streams ermöglichen es dir, Operationen auf Collections im funktionalen Stil auszuführen.
import java.util.Arrays;
import java.util.List;
List numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream().forEach(n -> System.out.println(n));
Streams unterstützen Operationen wie filter, map und reduce.
// Summe der geraden Zahlen
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n)
.sum();
System.out.println("Summe der geraden Zahlen: " + sum);
Lambda-Ausdrücke bieten eine kompakte Möglichkeit, anonyme Funktionen zu schreiben.
numbers.forEach(n -> System.out.println(n * 2));
Erklärung:
n -> n * 2 ist ein Lambda-Ausdruck, der n verarbeitetStreams ermöglichen das Verkettung mehrerer Operationen für sauberen und lesbaren Code.
int maxEven = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n)
.max()
.orElse(0);
System.out.println("Größte gerade Zahl: " + maxEven);
List numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(n -> n)
.sum();
System.out.println("Summe der geraden Zahlen: " + sum);
Finde den maximalen Wert in einer Liste mit Streams.
Schritte:
stream() mit max()filter oder mapBeispiel:
import java.util.Arrays;
import java.util.List;
public class MaxValueStream {
public static void main(String[] args) {
List numbers = Arrays.asList(10, 3, 25, 7, 18);
int max = numbers.stream()
.max(Integer::compare)
.orElse(Integer.MIN_VALUE);
System.out.println("Größter Wert: " + max);
}
}