Java stream流函数操作

本文介绍了如何在Java中利用StreamAPI的map、forEach、filter和sorted方法对数据进行遍历、筛选和排序,展示了@Builder注解在批量保存中的应用,突出IT技术在处理大量数据时的效率提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值