关于JDK8对List的分组汇总
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<Menu> menuList = UserUtils.getMenuList();
boolean add = menuList.stream().anyMatch(m -> "plan:ctPlan:add".equals(m.getPermission()));
5. 取出一组对象的某个属性组成一个新集合:
List<String> tableNames=list.stream().map(User::getMessage).collect(Collectors.toList());
6. list去重复:
list = list.stream().distinct().collect(Collectors.toList());
最新文章
- php后台编辑关联数据
- 【转载】Restarting an analysis in ANSYS
- 【摘】 pt-query-digest工具一解
- XML的解析和保存
- Linux(9.28-10.4)学习笔记
- 微信小程序全选,微信小程序checkbox,微信小程序购物车
- 如何设置nesC在vim中语法高亮
- linux用dd测试磁盘速度
- C#程序员整理的Unity 3D笔记(十五):Unity 3D UI控件至尊–NGUI
- C++ 数据类型及相关问题 及输出精度控制
- APPCAN学习笔记001---app高速开发AppCan.cn平台概述
- 优雅的使用Chrome调试Node程序
- PHP执行Session与前端JS之间的关系
- ●POJ 1195 Mobile phones
- Linux之prink原理
- Pancake Sorting LT969
- CAAnimationDelegate 代理方法没调用
- [LeetCode] 613. Shortest Distance in a Line_Easy tag: SQL
- python3.6配置libsvm2.2
- Git 中 pull 和 clone 的区别