创建对象 (o) 的实例并将其添加到 Arraylist (arrayList) 工作正常。但是,删除功能不起作用。
arrayList.add(o); // works
arrayList.remove(o); // does nothing
我错过了什么?
ArrayList.remove()
看起来像这样:
public boolean remove(Object o) {
if (o == null) {
for (int index = 0; index < size; index++)
if (elementData[index] == null) {
fastRemove(index);
return true;
}
} else {
for (int index = 0; index < size; index++)
if (o.equals(elementData[index])) {
fastRemove(index);
return true;
}
}
return false;
}
所以,如果你Object
有 default equals()
,那么这不起作用。所有对象都是不同的。添加equals()
到您的Object
班级。