使用ListIteartor向后遍历

问题描述 投票:0回答:2

我是 Java 新手,正在从非常基础的水平学习。我正在尝试运行以下代码,该代码在控制台中未显示任何结果。仅当我在其前面添加前向遍历代码时它才起作用。有人可以帮我吗?

public static void main(String[] args) {
    ArrayList<String> myList = new ArrayList<String>();
    myList.add("java");
    myList.add("C");
    myList.add("Python");

    ListIterator<String> trial = myList.listIterator();

    System.out.println("Backward Traverse");

    System.out.println("");

    while(trial.hasPrevious()){
        System.out.println(trial.previous());
    }
}
java arraylist iterator
2个回答
0
投票

当您通过调用

myList.listIterator()
创建列表迭代器时,其位置设置在第一项之前。这意味着
hasPrevious
将返回 false:第一项之前没有列表项。为了能够向后迭代,您需要一个位于列表最后一项之后的迭代器。

要创建位于末尾的迭代器,请使用:

trial = myList.listIterator(myList.size());

0
投票

ArrayList#listIterator(int索引)

更换

ListIterator<String> trial = myList.listIterator();

ListIterator<String> trial = myList.listIterator(myList.size());

这样起始位置就设置在末尾,然后就可以向后遍历列表了。

© www.soinside.com 2019 - 2024. All rights reserved.