4

オブジェクト (o) のインスタンスを作成し、それを Arraylist (arrayList) に追加すると、正常に機能します。ただし、削除機能は機能しません。

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

私は何が欠けていますか?

4

1 に答える 1

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;
}

したがって、Objectdefault がある場合equals()、これは機能しません。すべてのオブジェクトは異なります。クラスに追加equals()します。Object

于 2013-11-14T17:44:55.537 に答える