J'ai une Map
. Je veux toutes les valeurs de cette carte dans un nouveau Set
en utilisant l'API streams. J'ai pu obtenir un Set
, mais ce que je veux, ce sont toutes les valeurs de tous les ensembles de ma carte, dans un seul ensemble. Est-ce possible en utilisant des flux?
Merci d'avance.
3 Réponses :
Voilà:
Set<String> allStrings = map.values() .stream() .flatMap(Set::stream) .collect(Collectors.toSet());
Une autre solution peut être aussi:
Set<String> set = new HashSet<>(); map.values().forEach(set::addAll);
Vous pouvez utiliser le Méthode Stream.collect ()
pour y parvenir:
Set<String> set = map.values().stream() .collect(HashSet::new, HashSet::addAll, HashSet::addAll);
Jetez un œil à
flatMap ()
.