比较java中的两个列表

时间:2017-04-18 11:54:30

标签: java arrays list

我有两个清单:

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

我想把两个列表中的所有元素都没有相同的值,每个元素都会重复一次例子:

list3 = [1,2,3,4]

list3将获得list1list2的元素。

4 个答案:

答案 0 :(得分:3)

快速方法是使用Set例如:

<强>输入

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

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

将您的列表添加到设置

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

<强>输出

[1, 2, 3, 4]

答案 1 :(得分:1)

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

答案 2 :(得分:1)

将第二个列表中的唯一值添加到第一个列表中:

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

答案 3 :(得分: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