java8中,两个list<map>集合如何合并?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8中,两个list<map>集合如何合并?相关的知识,希望对你有一定的参考价值。

就像数据库两张表做join查询一样,假设这两个list<map>集合中,key1和key2的值是共同的,如何合并成一个list<map>呢?java的版本是8

这个简单呀,集合的长度是可变的,你把要合并的集合遍历出来,add( )添加到目标集合里就行了。追问

感觉这个方法比较传统,而且需要嵌套循环,java8有没有提供专门的方法处理这个?

参考技术A golang的话直接append就可以了

java 快速将两个list<map> 根据map中某个固定key的value相等整合成一个list<map>

比如下面连个list<map>:
List<Map> list1=new ArrayList<Map>();
Map map1=new HashMap();
map1.put("a","1");
map1.put("b","2");
map1.put("c","3");
map1.put("d","4");
list1.add(map1);
Map map2=new HashMap();
map2.put("a","11");
map2.put("b","22");
map2.put("c","33");
map2.put("d","44");
list1.add(map2);



List<Map> list2=new ArrayList<Map>();
Map map21=new HashMap();
map21.put("a","1");
map21.put("e","v2");
map21.put("f","v3");
map21.put("g","v4");
list2.add(map21);
Map map22=new HashMap();
map22.put("a","11");
map22.put("e","v22");
map22.put("f","v33");
map22.put("g","v44");
list2.add(map22);

如何将两个list中大量map快速整合成一个list,根据key为a的value值相等匹配,结果如下:
list<map> :a=1,b=2,c=3,d=4,e=v2,f=v3,g=v4,a=11,b=22,c=33,d=44,e=v22,f=v33,g=v44, ...
其中每个map中不止这么点key,可能是300个key,每个list中大概有20W个map,以list1为中心合并,有没有快速方法实现,感觉一个个遍历效率好低,太慢了

参考技术A 换个思路,取map,用map1.addAll(map2),如此类推,再list.add(map1);

以上是关于java8中,两个list<map>集合如何合并?的主要内容,如果未能解决你的问题,请参考以下文章

java8两个List集合取交集并集差集去重并集

Java8中list转map

Java8之集合排序

Java8之集合排序

将 GraphTraversal<Vertex, Map<Object, List>> 转换为 Java8 流

java8 list 转 map