数据库查询往往返回的是list,我们可能需要进行进一步的聚合,总结如下:
list转list:
stream().collect(Collectors.toList());
list转Map:
stream().collect(Collectors.toMap(MyClass::getId,Function.identity(),(a,b) -> a));
list分组map:.
stream().collect(Collectors.groupingBy(MyClass::getId));
MyClassReqDTO reqDTO = new MyClassReqDTO();
reqDTO.setCode("519745072412");
List<MyClass> pojoList = MyClassManager.listMyClass(reqDTO);
//list转list
List<MyClass> idList1 = pojoList.stream().map(a -> a).collect(Collectors.toList());
//取出某一字段 组装list
List<Long> idList = pojoList.stream().map(MyClass::getId).collect(Collectors.toList());
//求list长度
Long count = pojoList.stream().count();
// list转map 并去重
Map<Long,MyClass> map1 = pojoList.stream().collect(Collectors.toMap(MyClass::getId,Function.identity(),(a,b) -> a));
// 按条件过滤 list转map
Map<Long,MyClass> map3 = pojoList.stream().filter( c -> c.getId() < 4).collect(Collectors.toMap(MyClass::getId,Function.identity(),(a,b) -> a));
//分组转map
Map<Long,List<MyClass>> map2 = pojoList.stream().collect(Collectors.groupingBy(MyClass::getId));
//求和
Long sum = pojoList.stream().mapToLong(MyClass::getId).sum();