从ArrayList中删除元素,同时保留重复项(如果存在)

Dhi*_*raj 1 java arraylist

我需要从ArrayList中删除一些元素.我用的removeAll(List)方法.但问题是它也删除了重复项.我如何保留重复项?

考虑下面的例子 -

我有一个 List a1 = {2, 3, 4, 5, 2, 2, 3}

现在我有了另一个

List a2 = {2, 3}
Run Code Online (Sandbox Code Playgroud)

当我使用时,a1.removeAll(a2)我将a1 = {4, 5} 删除所有2和3的实例.

我需要的是a1 = {4, 5, 2, 2, 3} a2中存在的实例数应该从a1中删除.

我怎样才能做到这一点?

Gho*_*ica 5

迭代第二个列表,并为第一个列表上的每个成员调用remove().您无法通过一次通话完成此操作.

并确保调用remove(Object) - 而不是remive(int)!换句话说:确保传递Integer对象.否则你将调用删除某个索引的错误方法!