0
私はコンピュータサイエンスには新しいので、私の無知を許してください。 LinkedList
that is in Javaの場合、 の場合、removeLastOccurrence
メソッドは、渡されたオブジェクト間でequals
メソッドを使用しますか、単純にメモリ位置を比較しますか?LinkedList removeLastOccurrence
私はコンピュータサイエンスには新しいので、私の無知を許してください。 LinkedList
that is in Javaの場合、 の場合、removeLastOccurrence
メソッドは、渡されたオブジェクト間でequals
メソッドを使用しますか、単純にメモリ位置を比較しますか?LinkedList removeLastOccurrence
はhttp://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/LinkedList.javaによると、そのメソッドのソースは次のとおりです。削除したいオブジェクトがnull
ある場合
public boolean removeLastOccurrence(Object o) {
if (o == null) {
for (Node<E> x = last; x != null; x = x.prev) {
if (x.item == null) {
unlink(x);
return true;
}
}
} else {
for (Node<E> x = last; x != null; x = x.prev) {
if (o.equals(x.item)) {
unlink(x);
return true;
}
}
}
return false;
}
はこのように、それは、リスト内の
null
値を探します。オブジェクトが
null
でない場合は、
equals
メソッドを使用します。しかし、
equals
が明示的に値の等価を実装するためにオーバーライドされない限り、それはアイデンティティの等価性になります(つまり、
==
などのメモリアドレスをオブジェクトと比較することによって)。
[LinkedList'の仕様] ://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html#removeLastOccurrence-java.lang.Object-)。 [Dequeの仕様](https://docs.oracle.com/javase/8/docs/api/java/util/Deque.html#removeLastOccurrence-java.lang.Object-)に移動します。あなたはこのメソッドがしていることを正確に行います。 – Misha