当前位置: 首页 > 面试题库 >

Java中的列表差异

邬良才
2023-03-14
问题内容

我有两个ArrayList<Integer>如下:

原版的: 12, 16, 17, 19, 101

已选择: 16, 19, 107, 108, 109

我想对这些列表进行区别,以使最终我有两个列表:

加: 108,109,107

去掉: 12, 17, 101

原始列表和选定列表的长度各不相同,一个列表可以比另一个列表大/小


问题答案:
List<Integer> original = Arrays.asList(12,16,17,19,101);
List<Integer> selected = Arrays.asList(16,19,107,108,109);

ArrayList<Integer> add = new ArrayList<Integer>(selected);
add.removeAll(original);
System.out.println("Add: " + add);

ArrayList<Integer> remove = new ArrayList<Integer>(original);
remove.removeAll(selected);
System.out.println("Remove: " + remove);

输出:

Add: [107, 108, 109]
Remove: [12, 17, 101]

使用Collection的removeAll方法。参见javadocs。



 类似资料: