如何使用ListIterator?

0 java collections iterator arraylist listiterator

我正在使用ArrayList的iterator:

List<String> al = new ArrayList<>();
// ----- Logic for adding elements-----
Iterator it = al.iterator();
// logic to retrieve elements----
Run Code Online (Sandbox Code Playgroud)

然后它尝试使用ListIterator,就像这样.

ListIterator li = al.listIterator();
    while(li.hasNext()) {
        System.out.print(li.next()+" ");
    }
Run Code Online (Sandbox Code Playgroud)

有效 ...

我试着这个用于反向检索

ListIterator li = al.listIterator();
while(li.hasPrevious()) {
        System.out.print(li.previous()+" ");
    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

以下代码正常运行.

ListIterator<String> li = al.listIterator(al.size());
    while(li.hasPrevious()) {
        System.out.println(li.previous()+" ");
    }
Run Code Online (Sandbox Code Playgroud)

我想知道有一些泛型的概念,但不清楚它.请清除Iterator和ListIterator的概念.为什么ListIterator的一个语句正在运行另一个而不是?

JB *_*zet 7

第一个从列表的开头开始,因此没有任何先前的元素.

第二个从结束开始,因此具有先前的元素.

就这么简单.