對於列表而言,除了Iterator,還提供了一個功能更加強大的ListIterator。它可以實現逆序遍歷列表中的元素。本示例將使用其逆序遍歷ArrayList。
思路分析:要逆序遍歷某個列表,首先要獲得一個ListIterator對象,利用for()循環,以ListIterator類的hasNext()方法作為判斷條件,通過循環執行ListIterator類的next()方法將游標定位到列表結尾,然后在另一個for循環中,以ListIterator類的hasPrevious()方法作為判斷條件,通過ListIterator類的previous()方法逆序輸出列表中的元素。
代碼如下:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class IteratorDemo { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>();// 創建列表 for (int i = 0; i < 10; i++) {// 向列表中增加10個元素 list.add(i); } Iterator it = list.iterator(); System.out.print("ArrayList集合中的元素為:"); while(it.hasNext()){ System.out.print(it.next()+" "); } System.out.println(); System.out.println("逆序后為:"); ListIterator<Integer> li = list.listIterator();// 獲得ListIterator對象 for (li = list.listIterator(); li.hasNext();) {// 將游標定位到列表結尾 li.next(); } for (; li.hasPrevious();) {// 逆序輸出列表中的元素 System.out.print(li.previous() + " "); } } }
效果如圖: