有人可以告诉我,代码的for (ListIterator<E> it = listIterator(); it.hasNext(); )
部分是否应该改写为for (ListIterator<E> it = list.listIterator(); it.hasNext(); )
,其中list
是对ArrayList或LinkedList类的实例的引用?两种形式都可以接受并且正确吗?我应该在哪里使用另一个?
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;
}
最佳答案
for (ListIterator<E> it = listIterator(); it.hasNext(); )
此代码调用本人的
listIterator()
(this
),并使用其返回值。编写此代码的类实现List
的可能性更高。for (ListIterator<E> it = list.listIterator(); it.hasNext(); )
此代码调用实例引用的
listIterator()
,该实例引用存储在list
中,并使用其返回值。这段代码可能随处可见以编写例程。两者都是可以接受的,但是方法是否正确应取决于您想做什么。