我有一个模型类,如下所示:

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;

}

我有以下要求:
  • List<CCP>转换为Map<pid, List<cid>>

  • 也就是说,我想将CCP对象的列表转换为以pid为键和关联cid列表为值的映射。

    我尝试了以下操作:
    Map<Integer, List<CCP>> xxx = ccplist.stream()
                    .collect(Collectors.groupingBy(ccp -> ccp.getPId()));
    

    但这仅列出了CCP。

    我如何在这里获取CID列表而不是CCP?

    最佳答案

    使用mapping:

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

    07-24 22:34