2015-05-26 32 views
-2

**請幫助我解決這個**合併兩個列表在Java中沒有重複

List<String> list1 = {"a","b","c","d","aa","e","f","g"};   
    List<String> list2 = {"a","j","k","l","aa","x","y","z"}; 

在最後的結果我想是這樣

result = {"a","b","c","d","j","k","l","aa","e","f","g","x","y","z"}; 
+0

請問您能展示您的代碼嗎?你嘗試了什麼? – abarisone

+1

即使拋開我們通常不喜歡回答提問者沒有做出任何努力來解決問題的事實,我不能告訴_why_結果應該是你說的應該是什麼。結果的順序是否重要?如果是這樣,那麼輸入是什麼使得這個特定的輸出是正確的輸出?即使你有一些你嘗試過的代碼,這個問題也不會清楚。 – ajb

+0

我試圖'爲:(!list1.contains(X))(序列X列表2){ \t \t \t如果 \t \t \t list1.add(X); ''「a」,「b」,「c」,「d」,「aa」,「e」,「f」,「g」,「j」,「k」 ,「l」,「x」,「y」,「z」}''我也嘗試addall等,但沒有找到想要的結果 – User2228

回答

0

你需要將其保存在一組,因爲它保持唯一的條目。如果您需要基於keey的排序,您將不得不樹立...

Set<String> mySet = new HashSet<String>(); 
mySet.addAll(list1); 
mySet.addAll(list2); 

mySet擁有您需要的所有集合。

+0

相同的結果是投擲我想這''a,b,c,d,j, k,l,aa,e,f,g,x,y,z}'而不是'[a,b,c,d,aa,e,f,g,j,k,l,x,y,z ]' – User2228

+0

你跟隨什麼樣的邏輯?訂單的標準是什麼? –

1

我建議你爲此使用TreeSet,因爲它不允許重複的元素。 迭代通過第二TreeSet中通過將其添加到第一個

OR

你可以使用一個清單,並利用該方法,並相應增加。

0
for (Object x : two){ 
    if (!one.contains(x)) 
     one.add(x); 
} 
相關問題