java8 Stream list to Map key 重复 value合并到Collectio的操作
更新时间:2021年6月10日 15:00 点击:2166
java8 Stream list to Map key 重复 value合并到Collectio
关于把list转换成key value的map有很多博客上都有实现,这里是一个把value放入到集合中去
List<String> list = Lists.newArrayList("1", "2", "3", "1"); Map<String, List<String>> map = list.stream().collect(Collectors.toMap(key -> key, value -> Lists.newArrayList(value), (List<String> newValueList, List<String> oldValueList) -> { oldValueList.addAll(newValueList); return oldValueList; })); System.out.println(JSON.toJSONString(map));
类似的,你的list泛型可以是一个bean,取bean的属性当key或者value,转换成一个集合
结果:
{"1":["1","1"],"2":["2"],"3":["3"]}
list中Map合并重复数据(map中key相等的value值相加)
public static void main(String[] args) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("id", 1); map1.put("value", 2); list.add(map1); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("id", 1); map2.put("value", 5); list.add(map2); Map<String, Object> map3 = new HashMap<String, Object>(); map3.put("id", 2); map3.put("value", 5); list.add(map3); Map<String, Object> map4 = new HashMap<String, Object>(); map4.put("id", 2); map4.put("value", 4); list.add(map4); Map<String, Object> map5 = new HashMap<String, Object>(); map5.put("id", 1); map5.put("value", 4); list.add(map5); //id相等value相加(合并id相同数据) System.out.println("原始数据:"+list); //方法一 Map<String, Object> result1 = new HashMap<String, Object>(); for(Map<String, Object> map : list){ String id = map.get("id").toString(); Long value = Long.parseLong(map.get("value").toString()); if(result1.containsKey(id)){ Long temp = Long.parseLong(result1.get(id).toString()); value += temp; } result1.put(id, value); } System.out.println("合并后的数据:"+result1); //方法二 Map<String, Map<String, Object>> result2 = new HashMap<String, Map<String,Object>>(); for(Map<String, Object> map : list){ String id = map.get("id").toString(); Long value = Long.parseLong(map.get("value").toString()); if(result2.containsKey(id)){ Long temp = Long.parseLong(result2.get(id).get("value").toString()); value += temp; result2.get(id).put("value", value); continue; } result2.put(id, map); } System.out.println("合并后的数据2:"+result2); }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。
相关文章
Java8 实现stream将对象集合list中抽取属性集合转化为map或list
这篇文章主要介绍了Java8 实现stream将对象集合list中抽取属性集合转化为map或list的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05- 这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
java8中的Collectors.groupingBy用法详解
这篇文章主要介绍了java8中的Collectors.groupingBy用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-17- 这篇文章主要介绍了@CacheEvict 清除多个key的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-13
- 这篇文章主要介绍了Java8处理List的双层循环问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
- 下面小编就为大家带来一篇js遍历json的key和value的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-01-26
- 这篇文章主要介绍了@Cacheable 拼接key的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-13
- 这篇文章主要介绍了浅谈redis key值内存消耗以及性能影响,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
- 这篇文章主要介绍了uniapp微信小程序:key失效的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
浅谈Java8 的foreach跳出循环break/return
这篇文章主要介绍了Java8 的foreach跳出循环break/return,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-07-28antd Form组件方法getFieldsValue获取自定义组件的值操作
这篇文章主要介绍了antd Form组件方法getFieldsValue获取自定义组件的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢...2018-09-10
- 这篇文章主要介绍了Java8 使用流抽取List<T>集合中T的某个属性操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
- 这篇文章主要介绍了C# 遍历datatable字段名和value的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-19
- 本文给大家介绍如何替换json对象中的key,通过实例代码给大家介绍key的替换方法,代码也很简单,需要的朋友参考下吧...2021-06-02
java8时间 yyyyMMddHHmmss格式转为日期的代码
这篇文章主要介绍了java8时间 yyyyMMddHHmmss格式转为日期的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17- 这篇文章主要介绍了C#删除字符串中重复字符的方法,涉及C#针对字符串的遍历及移除等操作的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了解决postgresql 自增id作为key重复的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
- 这篇文章主要介绍了Java8之Stream流代替For循环操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-19
- 这篇文章主要介绍了postgresql 删除重复数据的几种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05