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(); }
下一篇:
50条必背JAVA知识点(一)