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 = ???

Antworten auf die Frage(8)

Ihre Antwort auf die Frage