2017-04-18 112 views
1

我有兩個列表:比較兩個列表中的Java

list1 = [1,2,3] 
list2 = [2,3,4] 

我要帶兩個列表中的所有元素,沒有相同的價值,每一個元素將重複一次,例如:

list3 = [1,2,3,4] 

list3將得到list1list2的元素。

+2

你有問題嗎?你卡在哪裏? – assylias

+0

循環遍歷第一個列表並將不在列表2中的任何值複製到它中。 然後對列表進行排序。 –

+3

將'List'添加到'Set'並且你完成了。 – SomeJavaGuy

回答

3

快速的方法是使用一組例如:

輸入

List<Integer> list1 = Arrays.asList(1,2,3); 

List<Integer> list2 = Arrays.asList(2,3,4); 

將您的列表添加到Set

Set<Integer> set = new TreeSet<>(); 
set.addAll(list1);   
set.addAll(list2); 

輸出

[1, 2, 3, 4] 
+0

謝謝兄弟,它的工作 –

+0

歡迎您@Outmen –

1
for(Integer i : list2){ 
    if(!list1.contains(i)){ 
     list1.add(i); 
    } 
} 
+1

謝謝,這是工作 –

1

從第二列表添加唯一值的第一個:

for (int i = 0; i < list2.size(); i++) 
    if (!list1.contains(list2.get(i)) 
     list1.add(list2.get(i)); 
+0

謝謝,這是工作 –

1

你可以做到這一點正確:

List<Integer> A = Arrays.asList(1, 2, 3); 
List<Integer> B = Arrays.asList(2,3,4); 

List<Integer> D = ListUtils.subtract(B, A);// contain 4 

輸出

List<Integer> C = ListUtils.union(A, D); // 1,2,3,4