如何使用ListIterator?
我正在使用ArrayList的iterator:
List al = new ArrayList(); // ----- Logic for adding elements----- Iterator it = al.iterator(); // logic to retrieve elements----
然后它尝试使用ListIterator,就像这样。
ListIterator li = al.listIterator(); while(li.hasNext()) { System.out.print(li.next()+" "); }
有效 …
我试过这个用于反向检索
ListIterator li = al.listIterator(); while(li.hasPrevious()) { System.out.print(li.previous()+" "); }
但它不起作用。
以下代码正常运行。
ListIterator li = al.listIterator(al.size()); while(li.hasPrevious()) { System.out.println(li.previous()+" "); }
我想知道有一些generics的概念,但不清楚它。 请清除Iterator和ListIterator的概念。 为什么ListIterator的一个语句不能正常工作?
第一个从列表的开头开始,因此没有任何先前的元素。
第二个从结束开始,因此具有先前的元素。
就这么简单。
当你使用时:
ListIterator li = al.listIterator(al.size());
你在打电话:
ListIterator List.listIterator(int index)
从列表中的指定位置开始,返回列表中元素的列表迭代器(按正确顺序)。
它基本上是在列表末尾开始列表迭代器,并且与hasPrevious()一起工作。
–
但是使用ListIterator li = al.listIterator();
你从头开始迭代,它没有前一个元素。
我建议使用IDE并设置调试点来评估条件。
有关详细信息,请参阅Java doc。