我有两个带有整数ID的列表,一个旧列表和一个新列表。
现在我想做三个步骤:
1.检查(旧)List1中的哪些ID也在(新)List2中找到
2.在步骤1之后删除List1中未在List2中找到的所有元素
3.将列表2中所有缺少的ID添加到列表1
我想添加两个布尔数组并在找到元素时设置一个标志,稍后我可以从List1中删除ID元素,并在List1中添加List2中未经检查的ID。
也许有更好的方法?
答案 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。