Convert collection into map in Stream stream

    public Map<Long, String> findBusinessUnitMapBySoids(List<Long> businessUnitSoids) {
    
    
        ListResult<List<BusinessUnitVo>> listBySoids = iBusinessUnitApi.findListBySoids(businessUnitSoids);
        Map<Long, String> res = new ConcurrentHashMap<>();
        if (ObjectUtils.isEmpty(listBySoids) || ObjectUtils.isEmpty(listBySoids.getData())) {
    
    
            return res;
        } else {
    
    
            List<BusinessUnitVo> BusinessUnitVos = listBySoids.getData();
            res = BusinessUnitVos.stream().filter(ObjectUtil::isNotEmpty)
                    .filter(a -> ObjectUtil.isNotEmpty(a.getBusinessUnitSoid()))
                    .filter(a -> ObjectUtil.isNotEmpty(a.getBusinessUnitName()))
                    .collect(Collectors.toMap(a -> a.getBusinessUnitSoid(), BusinessUnitVo::getBusinessUnitName, (key1, key2) -> key2));
        }
        return res;
    }

Insert image description here

    public Map<String, OppBasicData> OppBasicDataMap(Boolean updateFlag) {
    
    
        LambdaQueryWrapper<OppBasicData> queryWrapper=new LambdaQueryWrapper<>();
        queryWrapper.eq(OppBasicData::getUpdateFlag,updateFlag);
        Map<String, OppBasicData> stringOppBasicDataMap = Optional.ofNullable(list(queryWrapper))
                .map(list -> list.stream()
                        .filter(oppBasicData -> ObjectUtils.isNotEmpty(oppBasicData.getOppCode()))
                        .collect(Collectors.toMap(OppBasicData::getOppCode, Function.identity(), (key1, key2) -> key2)))
                .orElse(new HashMap<>());
        return stringOppBasicDataMap;
    }

Guess you like

Origin blog.csdn.net/weixin_43811057/article/details/119806347