有人能告诉我,如果代码的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;
}发布于 2016-03-13 02:39:44
for (ListIterator<E> it = listIterator(); it.hasNext(); )此代码调用listIterator() of of (this)并使用其返回值。编写此代码的类更有可能实现List。
for (ListIterator<E> it = list.listIterator(); it.hasNext(); )此代码调用存储在listIterator()中的实例引用的list,并使用其返回值。这段代码可能会出现在任何地方来编写例程。
两者都是可以接受的,但是它们是否正确取决于你想要做什么。
发布于 2020-09-01 14:31:09
会是这样的:
import java.util.ListIterator;
import java.util.ArrayList;
public class TestIndexOf<E> extends ArrayList<E> {
private static final long serialVersionUID = 1L;
@Override
public int indexOf(Object e){
for(ListIterator<E> it = listIterator(); it.hasNext();)
if (e == null ? it.next() == null: e.equals(it.next()))
return it.previousIndex();
return -1;
}
public static void main(String[] args){
TestIndexOf<String> ti = new TestIndexOf<>();
ti.add("a");
ti.add("b");
ti.add("c");
ti.add("d");
System.out.format("The index of %s is %d\n", "b", ti.indexOf("b"));
}
}https://stackoverflow.com/questions/35965797
复制相似问题