0
我是新來的計算機科學,所以請原諒我的無知。對於LinkedList
that is in Java, removeLastOccurrence
方法使用equals
方法之間的對象傳入或它只是比較內存位置?LinkedList removeLastOccurrence
我是新來的計算機科學,所以請原諒我的無知。對於LinkedList
that is in Java, removeLastOccurrence
方法使用equals
方法之間的對象傳入或它只是比較內存位置?LinkedList removeLastOccurrence
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
值。如果對象不是null
,則它使用equals
方法。但是,請記住,除非equals
被具體覆蓋以實現值相等,否則它將默認爲身份相等(即通過比較內存地址,如==
對象)
閱讀[LinkedList'的規範](https ://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