Java Stream Collectors.toMap-Wert ist ein Set
Ich möchte einen Java-Stream verwenden, um eine Liste von POJOs zu durchlaufen, z. B. die ListeList<A>
unten, und verwandeln Sie es in eine KarteMap<String, Set<String>>
.
Zum Beispiel ist Klasse A:
class A {
public String name;
public String property;
}
Ich habe den folgenden Code geschrieben, der die Werte in einer Karte sammeltMap<String, String>
:
final List<A> as = new ArrayList<>();
// the list as is populated ...
// works if there are no duplicates for name
final Map<String, String> m = as.stream().collect(Collectors.toMap(x -> x.name, x -> x.property));
Allerdings, weil es mehrere POJOs mit demselben @ geben kanname
, Ich möchte, dass der Wert der Karte ein @ iSet
. Alleproperty
Strings für den gleichen Schlüsselname
sollte in den gleichen Satz gehen.
Wie kann das gemacht werden?
// how do i create a stream such that all properties of the same name get into a set under the key name
final Map<String, Set<String>> m = ???