オブジェクト (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