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

Java 与另一个列表相比,快速更新列表元素的方法,java,arrays,list,loops,iteration,Java,Arrays,List,Loops,Iteration,我有两个整数ID的列表,一个是旧列表,一个是新列表 现在我想做三个步骤: 1.检查(旧)列表1中的哪些ID也可以在(新)列表2中找到 2.从列表1中删除步骤1之后在列表2中找不到的所有元素 3.将列表2中所有缺失的ID添加到列表1 我正在考虑添加两个布尔数组,并在找到一个元素时设置一个标志,稍后我可以从列表1中删除IDs元素,并从列表1中的列表2中添加未检查的ID 也许有更好的方法?将所有内容放在查找表中,例如使用哈希集。将所有内容放在查找表中,例如使用哈希集。将所有内容放在查找表中,例如使用哈

我有两个整数ID的列表,一个是旧列表,一个是新列表

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

我正在考虑添加两个布尔数组,并在找到一个元素时设置一个标志,稍后我可以从列表1中删除IDs元素,并从列表1中的列表2中添加未检查的ID


也许有更好的方法?

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

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

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

尝试以下方法:

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);
试着这样做:

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);
试着这样做:

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);
试着这样做:

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);