此API:
/// Returns a list iterator of the elements in this list (in proper sequence)
public ListIterator<E> listIterator(int index)
正确序列的含义是什么?
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
// Is the sequence returned by i1 and i2 is the same?
ListIterator<Integer> i1 = list.listIterator();
ListIterator<Integer> i2 = list.listIterator();
i1.next();
int result = i1.next(); // Is result 2? Or random?
答案 0 :(得分:3)
当ListIterator对象中的迭代按索引顺序返回时,表示和i1,i2是独立的:
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
// Is the sequence returned by i1 and i2 is the same?
ListIterator<Integer> i1 = list.listIterator();
ListIterator<Integer> i2 = list.listIterator();
while (i1.hasNext())
{
System.out.println(i1.next());
}
while (i2.hasNext())
{
System.out.println(i2.next());
}
}
}
输出结果为:
1
2
3
1
2
3
答案 1 :(得分:3)
返回此列表中元素的列表迭代器(按适当顺序)
这意味着ListIterator.next()
方法将按照它们在列表中出现的顺序返回列表的元素。这同样适用于List javadocs中使用短语“正确序列”的其他地方。
答案 2 :(得分:2)
是的,结果将是2,数组列表的正确顺序意味着按索引顺序。