2013-02-05 46 views
-1

假設我在Java中有兩個數組,並且我想對它們執行完整的外連接(返回第三個數組)。模擬Java中的完整外連接

我該怎麼做呢?

+0

更好的索引(='HashMap')外鍵列首先,否則您正在查看jo(n^2)的時間複雜度在。 –

+1

左或右外連接? :-)你有沒有嘗試過自己? –

+3

@ AndersR.Bystrup嚴重的是,這裏的左右連接有什麼區別?這就像考試中的一個詭計問題。 –

回答

5

我相信CollectionUtils from apache commons將擁有您需要的一切和更多。

查閱這些方法及其說明:

工會

公共靜態java.util.Collection的工會(java.util.Collection中的一個, java.util.Collection中的B)

返回包含給定集合的聯合的集合。 返回集合中每個元素的基數將爲 ,等於給定集合中兩個 中該元素的基數的最大值。

參數:

一個 - 先收,不能爲空

b - 第二集中,不能爲null返回:兩個集合

另請參見聯盟:收藏.addAll(java.util.Collection)

這可能是您需要的。但要做到左右,我想你會用的就是這個:

公共靜態java.util.Collection中減去(java.util.Collection的一個, java.util中。收集b)

返回包含a-b的新集合。返回集合中每個元素e的基數e是 中e的基數減去b中e的基數或零,取其中較大者。

參數:

一個 - 從減去,收藏不能爲空

b - 要減,不能爲null返回集合:一個新的集合 的結果

另請參見:Collection.removeAll(java.util.Collection)