快速更新列表元素与另一个列表比较的方法

时间:2014-03-21 14:35:30

标签: java arrays list loops iteration

我有两个带有整数ID的列表,一个旧列表和一个新列表。

现在我想做三个步骤:
1.检查(旧)List1中的哪些ID也在(新)List2中找到 2.在步骤1之后删除List1中未在List2中找到的所有元素 3.将列表2中所有缺少的ID添加到列表1

我想添加两个布尔数组并在找到元素时设置一个标志,稍后我可以从List1中删除ID元素,并在List1中添加List2中未经检查的ID。

也许有更好的方法?

2 个答案:

答案 0 :(得分:2)

以这种方式尝试:

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
List<Integer> list2 = new ArrayList<>(Arrays.asList(2, 3, 5, 6));
list1.retainAll(list2);
list2.removeAll(list1);
list1.addAll(list2);
System.out.println(list1);

输出:

[2, 3, 5, 6]

答案 1 :(得分:1)

将所有内容放在查找表中,例如使用HashSet。