当前位置:网站首页>List转Map的几种方式
List转Map的几种方式
2022-08-03 00:56:00 【道阻且长-行则将至-行而不辍-未来可期】
前言需求:
需要记录下之前List的转Map的使用方法,感觉好记性不如烂笔头,记录下之前使用过的List转成Map的实现java逻辑代码
RuleExpress ruleExpress = new RuleExpress();
ruleExpress.setNewsType(1);
List<RuleExpress> commonRuleExpressList = ruleExpressDao.listRuleExpresss(ruleExpress);
Map<String, List<RuleExpress>> commonRuleExpressMap = commonRuleExpressList.stream().collect(Collectors.groupingBy(RuleExpress::getType, LinkedHashMap::new, Collectors.toList()));
ContantData.setCommonNewsRuleExpressMap(commonRuleExpressMap);
ruleExpress.setNewsType(2);
List<RuleExpress> fastNewsRuleExpressList = ruleExpressDao.listRuleExpresss(ruleExpress);
Map<String, List<RuleExpress>> fastNewsRuleExpressMap = fastNewsRuleExpressList.stream().collect(Collectors.groupingBy(RuleExpress::getType, LinkedHashMap::new, Collectors.toList()));
ContantData.setFastNewsRuleExpressMap(fastNewsRuleExpressMap);
Map<Integer, List<Student>> commonMap = list.stream().collect(Collectors.groupingBy(Student::getNo, LinkedHashMap::new, Collectors.toList()));
Student noMax = list.stream().max(Comparator.comparing(Student::getNo)).get();
List<Student> maxList=commonMap.get(noMax.getNo());
System.out.println("------最大的列表---------");
System.out.println(maxList.toString());
System.out.println("---------------"); @Override
public Map<Integer, Map<String, String>> getNewsRangeConfig() {
QueryWrapper<TbmNewsRangeConfig> queryWrapper = new QueryWrapper();
queryWrapper.orderByAsc("id");
List<TbmNewsRangeConfig> tbmNewsRangeConfigList = tbmNewsRangeConfigMapper.selectList(queryWrapper);
Map firstLevelCodeMap = tbmNewsRangeConfigList.stream().collect(Collectors.groupingBy(TbmNewsRangeConfig::getFirstLevelCode, LinkedHashMap::new, Collectors.toMap(TbmNewsRangeConfig::getFirstLevelCode, TbmNewsRangeConfig::getFirstLevelName, (k1, k2) -> k1)));
Map secondLevelCodeMap = tbmNewsRangeConfigList.stream().collect(Collectors.groupingBy(TbmNewsRangeConfig::getSecondLevelCode, LinkedHashMap::new, Collectors.toMap(TbmNewsRangeConfig::getSecondLevelCode, TbmNewsRangeConfig::getSecondLevelName, (k1, k2) -> k1)));
Map thirdLevelCodeMap = tbmNewsRangeConfigList.stream().collect(Collectors.groupingBy(TbmNewsRangeConfig::getThirdLevelCode, LinkedHashMap::new, Collectors.toMap(TbmNewsRangeConfig::getThirdLevelCode, TbmNewsRangeConfig::getThirdLevelName, (k1, k2) -> k1)));
Map fourthLevelCodeMap = tbmNewsRangeConfigList.stream().collect(Collectors.groupingBy(TbmNewsRangeConfig::getFourthLevelCode, LinkedHashMap::new, Collectors.toMap(TbmNewsRangeConfig::getFourthLevelCode, TbmNewsRangeConfig::getFourthLevelName, (k1, k2) -> k1)));
Map<Integer, Map<String, String>> result = new LinkedHashMap<>();
result.put(1, firstLevelCodeMap);
result.put(2, secondLevelCodeMap);
result.put(3, thirdLevelCodeMap);
result.put(4, fourthLevelCodeMap);
return result;
}边栏推荐
猜你喜欢

SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别

The Sandbox 市场平台将上线 Isla Obscura 第五期 NFT 作品集
![[NCTF2019]SQLi-1||SQL注入](/img/18/6483cd9d5d2722860652fea193c13a.png)
[NCTF2019]SQLi-1||SQL注入

Violent recursion to dynamic programming 06 (the sword refers to Offer II 095. Longest common subsequence)

线上交流丨稀疏神经网络:实践和理论(青源Talk第23期 汪张扬)

torchvision.datasets.ImageFolder使用详解

async-await

【深度学习】基于tensorflow的小型物体识别训练(数据集:CIFAR-10)

新库上线 | CnOpenDataA股上市公司董监高信息数据

【SQL】—数据库操作、表操作
随机推荐
并发模型和I/O模型介绍
Guidelines for the use of SVA in UVM
1686. 石子游戏 VI
OpenWRT设置ipv6网络
2022年8月2日——使用idea搭建servlet+jsp项目
全栈---Proxy
北路智控上市首日破发:公司市值59亿 募资15.6亿
中科磁业IPO过会:年营收5.5亿 吴中平家族持股85%
【图像分类】2022-MPViT CVPR
【深度学习】基于tensorflow的小型物体识别训练(数据集:CIFAR-10)
.NET in-depth analysis of the LINQ framework (four: IQueryable, IQueryProvider interface details)
爆款视频怎么做?这里或许有答案
一个接口并发问题的模拟与复现
阿南的对话
【飞控开发高级教程1】疯壳·开源编队无人机-飞控整机代码走读、编译与烧写
7.31
The Sandbox 市场平台将上线 Isla Obscura 第五期 NFT 作品集
2149. 按符号重排数组
一套开源的可快速搭建自己的物联网/智能家居系统源码
绿色版-SQL环境搭建