这是Oracle 网站上的indexOf()
in示例实现。LinkedList
我对if
循环在这里的工作方式有点困惑:
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 为空时,有人可以帮助我了解它是如何完成的吗?