(5条消息) map干掉两个for循环案例,空间复杂度优化_学习微站的博客-CSDN博客_map空间复杂度
  iidSGHmvhBD4 2023年11月02日 97 0

map干掉两个for循环,​​空间复杂度​​优化

//分组遍历
if (CollectionUtils.isNotEmpty(dictGroupList)) {
dictGroupList.forEach(dicGroup -> {
CollectShopCompareResp.ShopTemplateGroupResp shopTemplateGroupResp =
new CollectShopCompareResp.ShopTemplateGroupResp();
shopTemplateGroupResp.setDictGroup(dicGroup.getDictGroup());
shopTemplateGroupResp.setAttrTitle(dicGroup.getDataGroupText());
List<CollectShopCompareResp.ShopTemplateDetailResp> shopDetailList = new LinkedList<>();
openShopDetailList.forEach(item -> {
String attrKey = item.getAttrKey();
SysDataDict sysDataDict = allDataMap.get(attrKey);
String dictGroup2 = sysDataDict.getDictGroup();
if (dicGroup.equals(dictGroup2)) {
shopDetailList.add(item);
}
});
if (CollectionUtils.isNotEmpty(shopDetailList)) {
shopTemplateGroupResp.setShopDetailList(shopDetailList);
}
openShopGroupDetailList.add(shopTemplateGroupResp);
});
}

干掉

private List<CollectShopCompareResp.ShopTemplateGroupResp>
generateShopGroupDetail(Map<String, SysDataDict> allDataMap,
List<CollectShopCompareResp.ShopTemplateDetailResp> openShopDetailList) {
List<CollectShopCompareResp.ShopTemplateGroupResp> openShopGroupDetailList = new LinkedList<>();
if (CollectionUtils.isNotEmpty(openShopDetailList)) {
//获取已有分组信息
List<SysDataDict> dictGroupList = new LinkedList<>();
openShopDetailList.forEach(item -> {
String attrKey = item.getAttrKey();
SysDataDict sysDataDict = allDataMap.get(attrKey);
dictGroupList.add(sysDataDict);
item.setDictGroup(sysDataDict.getDictGroup());
});
Map<String, List<SysDataDict>> dictGroupMap = dictGroupList.stream()
.collect(Collectors.groupingBy(SysDataDict::getDictGroup));
Map<String, List<CollectShopCompareResp.ShopTemplateDetailResp>> detailMap = openShopDetailList.stream()
.collect(Collectors.groupingBy(CollectShopCompareResp.ShopTemplateDetailResp::getDictGroup));
if (null == dictGroupMap || null == detailMap) {
return openShopGroupDetailList;
}
//分组标题及内容
dictGroupMap.keySet().forEach(item -> {
CollectShopCompareResp.ShopTemplateGroupResp shopTemplateGroupResp
= new CollectShopCompareResp.ShopTemplateGroupResp();
shopTemplateGroupResp.setDictGroup(item);
shopTemplateGroupResp.setAttrTitle(allDataMap.get(item).getDataGroupText());
shopTemplateGroupResp.setShopDetailList(detailMap.get(item));
openShopGroupDetailList.add(shopTemplateGroupResp);
});
}
return openShopGroupDetailList;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

iidSGHmvhBD4