提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
jdk1.8 stream()的应用
提示:以下是本篇文章正文内容,下面案例可供参考
//取差集 firstArrayList - secondArrayList
private List<StPptnRAllDataVo> diffList(List<StPptnRAllDataVo> firstArrayList, List<StRsvrRAllDataVo> secondArrayList) {
List<StPptnRAllDataVo> resultList = firstArrayList.stream()
.filter(item -> !secondArrayList.stream().map(e -> e.getStcd()).collect(Collectors.toList()).contains(item.getStcd()))
.collect(Collectors.toList());
return resultList;
}
//获取list中对象的id或其他的某个值拼接成字符串
List<User> list;
//stream().map 可以获取到集合中的对象
String authorizeUserIds = list.stream().map(User::getUserId).collect(Collectors.joining(","));
//获取对象id 转成id的集合
List<String> ids = list.stream().map(ProjectVo::getId).collect(Collectors.toList());
//根据typeId 分组,并转成map
Map<String, List<MaintenanceMainMobileIndexStatisticsVo>> map = list.stream().collect(Collectors.groupingBy(MaintenanceMainMobileIndexStatisticsVo::getMaintenanceTypeId));
//根据getEndTime时间和getNum数量 排序
List<MaintenanceMainVo> result = all.stream().sorted(Comparator.comparing(MaintenanceMainVo::getEndTime).thenComparing(MaintenanceMainVo::getNum).reversed())
.collect(Collectors.toList());
//有序分组
LinkedMap<Long, ArrayList<SysAreaApprCountVo>> collect = sysAreaApprCountVos.stream().collect(Collectors.groupingBy(SysAreaApprCountVo::getId, LinkedMap::new, Collectors.toCollection(ArrayList::new)));