Java8 stream 使用笔记
1、分组
(1)分组查询
Map<String, List<InstallationPO>> collect = list.stream().collect(Collectors.groupingBy(InstallationPO::getpUser));
Map<String, InstallationPO> collect = list.stream().collect(Collectors.toMap(InstallationPO::getpUser,v->v));
(2)分组统计
Map<String, Long> collect = cronHandelEventPOList.stream()
.filter(var -> StringUtils.isNotBlank(var.getTenantId()))
.collect(Collectors.groupingBy(ClouddriveCronHandelEventPO::getTenantId, Collectors.counting()));
(3)分组查询筛选最大的对象
InstallationPO installationPO = entry.getValue().stream().max(Comparator.comparing(InstallationPO::getUpdateTime)).get();
2、去重
List<OrderPO> orderPOS = XXXXX
List<String> orderIdList = orderPOS.stream().map(OrderPO::getId).distinct().collect(Collectors.toList());
3、过滤
List<SaasTenantClouddriveOrderPO> collect = orderPOS.stream().filter(var -> StringUtils.isNotBlank(var.getId())).collect(Collectors.toList());
4、排序
List<OrderLotReportDTO> lotReportDTOS = orderLotReportList.stream().sorted(Comparator.comparing(OrderLotReportDTO::getOrderNum)).collect(Collectors.toList());
目前记录笔记就先这些,后续有用到再来更新