lambda表达式之高级骚操作(继续完善)

1、筛选出workGroupEquipmentVOS中RoomVid相同的元素,最后在返回去重的list

 //去掉在不同群组的同一个设备
        List<WorkGroupDeviceVO> uniqueList = workGroupEquipmentVOS.stream().collect(Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(WorkGroupDeviceVO::getRoomVid))),
                ArrayList::new));
        uniqueList.sort((m1, m2) -> m2.getCreateTime().compareTo(m1.getCreateTime()));

2、uniqueList中的某字段是否包含了abilityConfigs中的任何一个值,返回的布尔类型

//typeName为空默认查询等于E8的数据,否则查询E8的数据再加上终端能力的筛选
        List<String> abilityConfigs = pageClassRoomCondition.getAbilityConfig();
        List<WorkGroupDeviceVO> workGroupEquipmentVOSVO = new ArrayList<>();
        if (!StrUtil.hasBlank(pageClassRoomCondition.getTypeName())) {
            //终端设备能力为attendancer,speecher,listener,caller,callee,interacter如果搜索条件为listener,interacter也应该都包含返回数据
            uniqueList.forEach(workGroupEquipmentVO->{
                boolean flag = abilityConfigs.stream().allMatch(str -> workGroupEquipmentVO.getAbilityConfig().contains(str));
                if (flag){
                    workGroupEquipmentVOSVO.add(workGroupEquipmentVO);
                }
            });
            page.setRecords(workGroupEquipmentVOSVO);
        }else {
            //typeName为空默认原逻辑不变
            page.setRecords(uniqueList);
        }

3、将一个list的值赋到另一个list

List<Object> collect = demoList.stream().map(result -> new DemoListVO(result.getKeyNo(), result.getName())).collect(Collectors.toList());

后续遇到别的高级操作再继续完善。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bst@微胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值