Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce qu'est la méthode flatMap et comment elle diffère de map?

sobes.tech IA

Réponse de l'IA

La méthode map s'applique à une collection et transforme chaque élément, renvoyant une nouvelle collection avec des éléments correspondant aux résultats de la fonction.

flatMap applique d'abord une fonction qui retourne une collection (ou un flux) pour chaque élément, puis "aplatit" (flatten) toutes ces collections en un seul flux ou liste.

Exemple en Java avec des flux :

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

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

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

// flatMapped peut être collecté en une liste
List<String> result = flatMapped.collect(Collectors.toList()); // ["A", "B", "C", "D"]

Ainsi, flatMap est pratique lorsque la fonction retourne des collections imbriquées, et qu'il faut obtenir une structure plate.