ArrayList.add有效,但不是ArrayList.remove

时间:2013-11-14 17:37:52

标签: java object arraylist

创建对象(o)的实例并将其添加到Arraylist(arrayList)可以正常工作。但是,删除功能不起作用。

arrayList.add(o); // works
arrayList.remove(o); // does nothing

我错过了什么?

1 个答案:

答案 0 :(得分:3)

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有默认equals(),那么这个工作就不行了。所有对象都不同。将equals()添加到Object班级。