這是Oracle網站上的中indexOf()
的示例實現。我在if
迴路是如何在這裏工作有點糊塗:有人可以幫助解釋這個indexOf()實現是如何工作的?
public int indexOf(E e) {
for (ListIterator<E> it = listIterator(); it.hasNext();)
if (e == null ? it.next() == null : e.equals(it.next()))
return it.previousIndex();
// Element not found
return -1;
}
所以ListIterator
對象在列表的頭部形成。 for
循環繼續,直到迭代器到達列表的結尾,並且if
循環檢查是否找到目標對象。我不明白的部分是,爲什麼if
循環檢查it.next() == null
時e == null
?當輸入e爲空時,有人能幫助我瞭解它是如何完成的嗎?
如果列表不包含任何空引用,則返回-1。 rembember for循環只運行it.hasNext()。 –
@FlorianMinges列表不包含任何空引用是什麼意思? – nemesis