今天在学习列表迭代器的时候,讲hasNext这一段注释,则hasPrevious的while循环直接跳出,如果没有注释hasNext这一段则正常运行。
List<String> list = new ArrayList<String>();
list.add("hello");
list.add("world");
list.add("java");
ListIterator<String> lt = list.listIterator();
/*
while (lt.hasNext()){
String s = lt.next();
System.out.println(s);
}
*/
while (lt.hasPrevious()){
String s = lt.previous();
System.out.println(s);
}
原因:类似于索引,一开始没有注释的时候lt已经指向了List最后一个元素,然后调用hasPrevoius方法从后向前执行,如果只有单独的hasPrevious,则没有元素可以再输出,则退出while循环。
解决办法:
ListIterator<String> lt = list.listIterator(list.size());
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。