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进行匹配,记住需要返回判空
标签:queryWrapper,toMap,stream,getCheckCode,功能,spotCheck,SpotCheck From: https://www.cnblogs.com/qwg-/p/18310324