Junior — Middle
Können Sie erklären, was die Methode flatMap ist und wie sie sich von map unterscheidet?
sobes.tech KI
Antwort von AI
Die Methode map wird auf eine Sammlung angewendet und transformiert jedes Element, wobei eine neue Sammlung mit Elementen zurückgegeben wird, die den Ergebnissen der Funktion entsprechen.
flatMap wendet zunächst eine Funktion an, die für jedes Element eine Sammlung (oder einen Stream) zurückgibt, und "flacht" dann all diese Sammlungen in einen einzigen Stream oder eine Liste ab.
Beispiel in Java mit Streams:
List<List<String>> list = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
// map gibt einen Stream<List<String>> zurück
Stream<List<String>> mapped = list.stream()
.map(innerList -> innerList.stream().map(String::toUpperCase).collect(Collectors.toList()));
// flatMap gibt einen Stream<String> zurück
Stream<String> flatMapped = list.stream()
.flatMap(innerList -> innerList.stream().map(String::toUpperCase));
// flatMapped kann in eine Liste gesammelt werden
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]
Daher ist flatMap nützlich, wenn die Funktion verschachtelte Sammlungen zurückgibt und eine flache Struktur benötigt wird.