Mapa y GroupBy de una sola vez

KayV:

Tengo una clase de modelo de la siguiente manera:

public class CCP implements Serializable{

    private static final long serialVersionUID = 1L;

    @Id
    @Column(name = "p_id")
    private Integer pId;

    @Id
    @Column(name = "c_id")
    private Integer cId;

    @Column(name = "priority")
    private Integer priority;

}

Tengo el siguiente requisito:

  1. Convertir el List<CCP>enMap<pid, List<cid>>

Es decir, quiero convertir la lista de CCP objetos en un mapa tener pid como clave y una lista de CIDS asociados como valores.

Probé las siguientes cosas:

Map<Integer, List<CCP>> xxx = ccplist.stream()
                .collect(Collectors.groupingBy(ccp -> ccp.getPId()));

Pero esto da la lista de sólo el PCC.

¿Cómo puedo obtener la lista de cid aquí en lugar de CCP?

Eran :

utilizar mapping:

Map<Integer, List<Integer>> xxx = 
    ccplist.stream()
           .collect(Collectors.groupingBy(CCP::getPId,
                                          Collectors.mapping(CCP::getCId,
                                                             Collectors.toList())));

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=185570&siteId=1
Recomendado
Clasificación