有人可以告诉我,代码的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中,并使用其返回值。这段代码可能随处可见以编写例程。

两者都是可以接受的,但是方法是否正确应取决于您想做什么。

10-07 19:02
查看更多