1. map进行遍历
采用@Builder注解进行批量保存
List<ProgAnnualPlanTaskOperationAttPO> attPOS = param.getAttList().stream().map(a -> ProgAnnualPlanTaskOperationAttPO.builder().attKey(a.getAttKey()).attName(a.getAttName()).operationId(operationPO.getId()).attType(a.getAttType())
.attUrl(a.getAttUrl()).attOrder(a.getAttOrder()).tenantId(AuthenticationHolder.getUserDetails().getTenantId()).build()).collect(Collectors.toList());
progAnnualPlanTaskOperationAttService.saveAll(attPOS);
未采用@Builder注解进行批量保存
param.getMonthlyVales().stream().map(v ->{
ProgAnnualMonthlyValueChangePO valuePO = BeanUtil.copyProperties(v, ProgAnnualMonthlyValueChangePO.class);
valuePO.setMasterChangeId(po.getId());
return valuePO;
}).collect(Collectors.toList());
monthlyValueChangeService.saveAll(collect);
取出所有的字段组成列表
List<Long> collect = otherList.stream().map(a->a.getDeviceMasterId()).collect(Collectors.toList());
2. forEach 进行遍历
param.getRemainList().stream().forEach(po-> {
TPmPreRemainSetting POS=new TPmPreRemainSetting();
BeanUtils.copyProperties(po, POS);
saveList.add(POS);}
);
3.filter进行筛选
List<SdDeviceMasterDTO> monitorList = list.stream().filter(a->a.getDeviceType().equals("1")).collect(Collectors.toList());
4.sorted进行排序
List<FocusWorkListVo> collect = list.stream().sorted(Comparator.comparing(FocusWorkListVo::getMonitorId).reversed()).collect(Collectors.toList());
Comparator.comparing.reversed进行倒叙排列
List<Integer> list = Arrays.asList(1, 3, 2, 5, 4);
list.sort(Comparator.comparing(Integer::intValue).reversed());
System.out.println(list); // [5, 4, 3, 2, 1]