如何在Java中加入两个ArrayList

如何在Java中加入两个ArrayList

问题描述:

我有两个包含字典数组的对象。 Array中的每个条目HashMap将有大约40-50个字段。对象2 HashMap可能包含不同的键,但两个对象之间将有一个共同的键。如何在Java中加入两个ArrayList

object1 = ArrayList<HashMap<String, Object>> 

object2 = ArrayList<HashMap<String, Object>> 

Object1 HashMap是有几场 字段1,字段2,字段3,字段4 ...

对象2 HashMap是有几场 字段4,字段5,字段6,字段7 ..

我想加入共同field4上的对象和结果数组应该具有所有字段1到7

输出应该与sql查询相同。

Select * from object1, Object2 where object1.field4 = object2.field4 

如果object1有3行,Object2有5行,那么如果所有的键匹配,输出列表将有15行。匹配的field4在两个对象中都不是唯一的。

+1

这不是一个代码写作服务。你到目前为止尝试了什么?发布您的代码!当你运行它时发生了什么?你预期会发生什么?你有什么特别的问题? https://*.com/help/mcve – Robert

+0

使用Java 8 lambda,首先使用flatMap将两个hashmaps合并为一个cartesian产品,然后过滤结果。 –

你可以简单地这样做:

List<HashMap <String , Object >> listFinal = 
       new ArrayList<HashMap < String , Object >>(); 
listFinal.addAll(object1); 
listFinal.addAll(object2); 

这里我使用了addAll()方法添加两个列表。

欲了解更多信息,你可以参考here

+2

这将是字符串不字符串 – jthort

+0

@jthort感谢您指出。修复。 –

+0

谢谢,但它不会加入关键。假设object1是Employee和Object2是Department,那么在hashmap call departmentId中都会有关键字。它应该加入这个关键。如果具有3个员工的object1和具有2个部门的object2然后输出将具有6个行。 – Sadaf