Elenco di gruppi di lambda Java 8 nella mappa

Voglio prendere una List e return una Map<String, List> dove la chiave Map è un valore String in Pojo , chiamiamola String key .

Per chiarire, dato il seguente:

Pojo 1: Key: un valore: 1

Pojo 2: Key: un valore: 2

Pojo 3: Key: valore b: 3

Pojo 4: Key: valore b: 4

Voglio una Map<String, List> con keySet() dimensioni 2, dove la chiave “a” ha Pojos 1 e 2, e la chiave “b” ha pojos 3 e 4.

Come potrei ottenere questo risultato usando Java 8 lambda?

Sembra che la semplice variante di groupingBy sia ciò di cui hai bisogno:

 Map> map = pojos.stream().collect(Collectors.groupingBy(Pojo::getKey)); 

Inoltre, se volessi restituire una mappa simile ma invece di pojo intero, volevi che i valori della mappa fossero una proprietà del Pojo, avresti fatto così:

 Map> map = pojos.stream() .collect( Collectors.groupingBy( Employee::getKey, Collectors.mapping( Pojo::getSomeStringProperty, Collectors.toList())));