java集合用stream流转Map的两种常见转化方式

java集合用stream流转Map的两种常见转化情况

基本类对象

@Data
public class BusinessRuleTemplateTaskDTO {
    private Long id;//主键,唯一性
    private Long basicTaskId;//子表主键,存在多值
}

第一种转化情况(key-类对象):

List<BusinessRuleTemplateTaskDTO> waitHandledList=new ArrayList<>();//我先以空集合表示,此处应为真正需要处理的集合本身
Map<Long, BusinessRuleTemplateTaskDTO > map= waitHandledList.stream().collect(Collectors.toMap(BusinessRuleTemplateTaskDTO ::getId, o -> o));

第二种转化情况(key-集合对象):

List<BusinessRuleTemplateTaskDTO> waitHandledList=new ArrayList<>();//我先以空集合表示,此处应为真正需要处理的集合本身
    Map<Long, List<BusinessRuleTemplateTaskDTO>> map = waitHandledList.stream().collect(Collectors.groupingBy(BusinessRuleTemplateTaskDTO::basicTaskId));
        for (Map.Entry<Long, List<BusinessRuleTemplateTaskDTO>> entry : map.entrySet()) {
        List<BusinessRuleTemplateTaskDTO> list = entry.getValue();
        }
       

你可能感兴趣的:(java,java,开发语言,后端)