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 ().