使用ListIterator在Java中以相反的方向遍历ArrayList

ListIterator可用于在List集合中沿正向和反向遍历元素。因此ListIterator仅对诸如LinkedList,ArrayList等类有效。

如果在列表中有更多元素同时沿相反方向遍历,则ListIterator中的hasPrevious()方法返回true,否则返回false。方法previous()返回列表中的前一个元素,并向后减小光标位置。

演示此的程序如下所示-

示例

import java.util.ArrayList;
import java.util.ListIterator;
public class Demo {
   public static void main(String[] args) {
      ArrayList<String> aList = new ArrayList<String>();
      aList.add("Amanda");
      aList.add("Peter");
      aList.add("Julie");
      aList.add("James");
      aList.add("Emma");
      ListIterator<String> li = aList.listIterator();
      while (li.hasNext()) {
         li.next();
      }
      System.out.println("The ArrayList elements in the reverse direction are: ");
      while (li.hasPrevious()) {
         System.out.println(li.previous());
      }
   }
}

输出结果

The ArrayList elements in the reverse direction are:
Emma
James
Julie
Peter
Amanda

现在让我们了解上面的程序。

创建ArrayList,并使用ArrayList.add()将元素添加到ArrayList。演示这的代码片段如下-

ArrayList<String> aList = new ArrayList<String>();
aList.add("Amanda");
aList.add("Peter");
aList.add("Julie");
aList.add("James");
aList.add("Emma");

然后,使用ListIterator接口以相反的方向显示ArrayList元素。演示这的代码片段如下-

ListIterator<String> li = aList.listIterator();
while (li.hasNext()) {
   li.next();
}
System.out.println("The ArrayList elements in the reverse direction are: ");
while (li.hasPrevious()) {
   System.out.println(li.previous());
}