listIterator API描述的含义是什么?

时间:2009-12-05 11:29:57

标签: java api

此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?

3 个答案:

答案 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,数组列表的正确顺序意味着按索引顺序。