前言需求:
需要记录下之前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;
}