Sobes.tech
Junior — Middle

Kun je uitleggen wat de flatMap-methode is en hoe deze verschilt van map?

sobes.tech AI

Antwoord van AI

De map-methode wordt toegepast op een collectie en transformeert elk element, waarbij een nieuwe collectie wordt teruggegeven met elementen die overeenkomen met de resultaten van de functie.

flatMap past eerst een functie toe die voor elk element een collectie (of stroom) teruggeeft, en "vlakt" vervolgens al deze collecties uit in één enkele stroom of lijst.

Voorbeeld in Java met streams:

List<List<String>> list = Arrays.asList(
    Arrays.asList("a", "b"),
    Arrays.asList("c", "d")
);

// map geeft een Stream<List<String>>
Stream<List<String>> mapped = list.stream()
    .map(innerList -> innerList.stream().map(String::toUpperCase).collect(Collectors.toList()));

// flatMap geeft een Stream<String>
Stream<String> flatMapped = list.stream()
    .flatMap(innerList -> innerList.stream().map(String::toUpperCase));

// flatMapped kan worden verzameld in een lijst
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]

Dus, flatMap is handig wanneer de functie geneste collecties teruggeeft en je een platte structuur wilt verkrijgen.