对象List处理
List转为HashMap
利用Collectors.toMap方法实现,若重复Key则覆盖。
1 | // 值为对象 |
List分组后得到HashMap
1 | // 根据某个字段分组 |
把某个字段拆成List
1 | List<String> idList = deptInfoVoList.stream().map(DeptInfoVo::getId).collect(Collectors.toList()); |
把某个字段拆成Set
1 | Set<String> unitIdSet = measureUserList.stream() |
根据某一个对象属性去重
1 | insertWbUserList = insertWbUserList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection( |
根据多个对象属性去重
1 | // 根据对象的多个属性去重 |
注意:item -> ‘不重复的字符串’。
根据某个字段分组、对另一个字段求和
1 | // 根据id字段分组、求salary字段 |
Map处理
1 | // 把Map转为List:按键升序排列 |
单字段List处理
1 | // 过滤、去重 |
对对象的字符串类型的日期排序(推荐)
方法一
1 | Collections.sort(deptInfoVoList, new Comparator<DeptInfoVo>() |
方法二
1、实体类实现Comparable接口
1 | public class DeptInfoVo implements Comparable<DeptInfoVo>{ |
2、重写compareTo方法
1 |
|
3、业务代码中排序
1 | Collections.sort(deptInfoVoList); |
方法三
1 | List<DeptInfoVo> newDeptInfoList = deptInfoVoList.stream().sorted(new Comparator<DeptInfoVo>() { |
注意:日期格式化中的年份yyyy不能写为大写
对对象的普通字符串(或日期类型)排序
1 | // 升序 |
求对象数字类型的最小值和最大值
1 | // 最小值 |
注意:若age字段存在为空,会报空指针异常
求对象数字类型的总和和平均值
1 | // 总和 |
注意:若age字段存在为空,会报空指针异常