我有两个列表可能如下所示:
A: {1 3 1 2}
B: {1 3}
Run Code Online (Sandbox Code Playgroud)
我想B从列表中删除列表元素,A最后得到:
A: {1 2}
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用,A.removeAll(B)我将只得到值2,因为值1的所有重复实例将从列表中删除A.到目前为止,我的解决方案是对所有元素使用迭代器A,然后使用所有元素,B如果我找到类似的值,则从两个列表中删除它,直到列表B为空.
有没有更好的方法呢?
您不需要使用嵌套循环.
循环上b包含要删除的值而不是a 使用.
它将删除第一个元素等于参数而不是所有元素. List.remove(Object)List.removeAll(Collection)
List<Integer> a = new ArrayList<>(Arrays.asList(1, 3, 1, 2));
List<Integer> b = Arrays.asList(1, 3);
for (Integer currentInt : b) {
a.remove(currentInt);
}
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)
输出:
[1,2]
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |