通过stream的toMap的功能

  LambdaQueryWrapper<SpotCheck> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.in(SpotCheck::getCheckCode,checkCodes);
            List<SpotCheck> spotChecks = spotCheckMapper.selectList(queryWrapper);
            if (CollUtil.isNotEmpty(spotChecks)){
                Map<String, SpotCheck> spotCheckMap = spotChecks.stream().collect(Collectors.toMap(SpotCheck::getCheckCode, SpotCheck -> SpotCheck));
                exportList = exportList.stream().peek(e->{
                    SpotCheck spotCheck = spotCheckMap.get(e.getCheckCode());
                    if (ObjUtil.isNotEmpty(spotCheck)){
                        BeanUtil.copyProperties(spotCheck,e);
                    }
                }).collect(Collectors.toList());
            }

通过先查询出所有对象,通过java8的stream中tomap方法,把集合对象变为map的key和value对象,key是用唯一的字段,比如id或者code等

下面的集合可以使用stream的peek的遍历,将其map进行匹配,记住需要返回判空

posted @ 2024-07-18 19:52  多多指教~  阅读(1)  评论(0编辑  收藏  举报