我是 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());
}
}
当您通过调用
myList.listIterator()
创建列表迭代器时,其位置设置在第一项之前。这意味着 hasPrevious
将返回 false:第一项之前没有列表项。为了能够向后迭代,您需要一个位于列表最后一项之后的迭代器。
要创建位于末尾的迭代器,请使用:
trial = myList.listIterator(myList.size());
更换
ListIterator<String> trial = myList.listIterator();
与
ListIterator<String> trial = myList.listIterator(myList.size());
这样起始位置就设置在末尾,然后就可以向后遍历列表了。