java - ArrayList.add 有效,但 ArrayList.remove 无效

标签 java object arraylist

创建对象实例 (o) 并将其添加到数组列表 (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 具有默认的 equals(),那么这将无法工作。所有对象都不同。将 equals() 添加到您的 Object 类。

关于java - ArrayList.add 有效,但 ArrayList.remove 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19984527/

相关文章:

java - 等宽 Swing 文字

java - SPOJ 问题 - 这里出了什么问题?

java - 如何迭代Arraylist<HashMap<String,String>>?

javascript - 循环子对象

c++ - 均衡对象时复制数组

java - 数组索引越界 For 循环打印内容 ArrayList

python - 如何在Python中引用列表中的字符串

java - 使用 NanoHttpd 进行视频流传输,错误 : java.net.SocketException:发送失败:EPIPE(破管)

java - 使用 java 将每个元素存储在单独的文本文件中

关于使用扩展运算符包含 1...N 的数组的 Javascript 异常行为