【发布时间】:2018-03-30 16:05:24
【问题描述】:
我知道这个问题已经被问过很多次了。但在我的问题中,有两个相同对象类型的数组列表。假设 arraylist A 包含 5 个元素,arraylist B 包含 2 个元素。
Arraylist A elements = obj1,obj2,obj3,obj4,obj5
Arraylist B elements = obj1,obj2
我想要的是删除 Arraylist B 中存在的 Arraylist A 的所有元素,即 obj1、obj2。那么最终的 Arraylist A 应该是这样的:
Arraylist A = obj3,obj4,obj5
我实现的代码:
for (int i=0;i<arraylistB.size();i++){
if(arraylistA.contains(arraylistB.get(i))){
arraylistA.remove(arraylistB.get(i));
arraylistB.remove(i);
}
}
但是这段代码没有从Arraylist A 中删除任何内容,我不知道我做错了什么。请帮帮我!
【问题讨论】:
-
你试过
removeAll吗? -
是的,没有成功
-
元素的类型是什么?它是自定义类型吗?如果是这样,您是否覆盖了 equals() 和 hashCode()?
-
不方便,因为我正在使用我的手机。有人会在几分钟内找到重复的链接。