El valor de Java Stream Collectors.toMap es un conjunto
Quiero usar un Java Stream para ejecutar una lista de POJO, como la listaList<A>
a continuación, y transformarlo en un MapaMap<String, Set<String>>
.
Por ejemplo, la clase A es:
class A {
public String name;
public String property;
}
Escribí el código a continuación que recopila los valores en un mapaMap<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));
Sin embargo, debido a que puede haber varios POJO con el mismoname
, Quiero que el valor del mapa sea unSet
. Todasproperty
Cuerdas para la misma clavename
debería entrar en el mismo conjunto.
¿Cómo se puede hacer esto?
// 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 = ???