Bonjour

j'ai une List<Map<String,List<String>>> et je cherche à obtenir Map<String,List<String>>

[{"a":["X","Y"]},{"a":["X","Z"],"b":["H"]}] =>{"a":["X","Y","Z"],"b":["H"]}
J'ai essayé des truc avec stream mais je n'obtiens pas le bon résultat.

J'ai presque le résultat
{"a":[["X","Y"],["X","Z"]],"b":[["H"]]} mais le type retourné est Map<Object,List<Object>> Il semble que Collectors.toList() récupère pas bien le type des éléments alors qu'ils sont tous de type String.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
mapGlobal = myList.stream()
                .flatMap(m -> m.entrySet().stream())
                .collect(Collectors.groupingBy(Map.Entry::getKey,
                        Collectors.mapping(Map.Entry::getValue,        
                                           Collectors.toList()) //<= ICI ça retourne un List<Object> et non un List<String>
                ));
Merci à vous.
A+JYT