概要
经常遇到List需要装Map的几种方式总结。话不多说,上代码:
技术细节
1 、List list 转换为 Map<String, ParaPartner> map
Map<String, ParaPartner> paraPartnerMap = paraPartnerList.stream()
.collect(Collectors.toMap( item->
item.getCompanyType() + "_" + item.getItemCode(), // 键:从对象中提取
partner -> partner, // 值:对象本身
(existing, replacement) -> existing // 处理重复键(保留已存在的值)
));
2、List 转换为 Map<String, List>
Map<String, List<ParaPartner>> paraPartnerMap = paraPartnerList.stream()
.collect(Collectors.groupingBy(
ParaPartner::getCategory // 分组键(例如 getCategory() 方法)
));
3、List 转换为 Map<String, Integer> 统计
Map<String, Integer> categoryTotalScoreMap = paraPartnerList.stream()
.collect(Collectors.groupingBy(
ParaPartner::getCategory,
Collectors.summingInt(ParaPartner::getScore) // 每组 score 的总和
));
Map<String, Integer> purCgMap = paraPartnerList.stream().filter(p->p.getTransportType() == 1)
.collect(Collectors.groupingBy(ParaPartner::getMaterialCode,
Collectors.mapping(ParaPartner::getQuantity,
Collectors.reducing(0, Integer::sum))));
小结
怎么说,是不是总结的很好呀。
###技术分享###