2016-12-06 27 views
1

我有兩個包含字典數組的對象。 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://stackoverflow.com/help/mcve – Robert

+0

使用Java 8 lambda,首先使用flatMap將兩個hashmaps合併爲一個cartesian產品,然後過濾結果。 –

回答

3

你可以簡單地這樣做:

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

相關問題