Stream元素流式计算

一、基本使用
1. 跟据某个属性分组OfficeId
 Map<String, List<IncomeSumPojo>> collect = list.stream().collect(Collectors.groupingBy(IncomeSumPojo::getOfficeId));

 

 
2. 根据某个属性分组OfficeId,汇总某个属性Money:
Map<String, Double> collect = list.stream().collect(Collectors.groupingBy( IncomeSumPojo::getOfficeId, Collectors.summingDouble(IncomeSumPojo::getMoney) ));

 

 
3. 根据某个属性添加条件过滤数据:
list = list.stream().filter(u -> !u.getAmount().equals("0.00")) .collect(Collectors.toList());

 

 
4. list去重复:
list = list.stream().distinct() .collect(Collectors.toList());

 

 
5. 取出一组对象的某个属性组成一个新集合:
List<String> tableNames = list.stream().map(User::getMessage) .collect(Collectors.toList());

 

 
6. 判断一组对象里面 是否每个元素都满足条件:
boolean add = menuList.stream().allMatch(m -> "plan:ctPlan:add".equals(m.getPermission()));

 

 
7. 判断一组对象里面 是否有至少一个满足条件:
boolean add = menuList.stream().anyMatch(m -> "plan:ctPlan:add".equals(m.getPermission()));

 

 
8. 判断一组对象里面 是否每个元素都不满足条件:
boolean add = menuList.stream().noneMatch(m -> "plan:ctPlan:add".equals(m.getPermission()));

 

 
9.排序(参数不填:按照默认方式进行排序,传参:实现Comparator接口)
List<Integer> l2 = l1.stream().sorted((t1, t2) -> { return t1 < t2 ? 1 : t1 == t2 ? 0 : -1; });

 

 
posted @ 2021-11-30 20:02  baissy  阅读(87)  评论(0编辑  收藏  举报