Java中的迭代器

迭代器用于遍历Java集合。有三种类型的迭代器。

  • 枚举-枚举是jdk 1.0中引入的初始迭代器,仅适用于较旧的集合,例如vector或hashTables。枚举只能用于前向导航。无法使用枚举删除元素。

  • 迭代器-迭代器是Jdk 1.2中引入的通用迭代器,可用于任何集合。迭代器只能用于前向导航。如果支持remove方法,则可以使用迭代器删除元素。

  • ListIterator -ListIterator是List类型集合的迭代器,并支持双向导航。

示例

import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Vector;

public class Tester{

   public static void main(String[] args) throws ClassNotFoundException {
      Vector<Integer> vector = new Vector<>();
      vector.add(1);vector.add(2);vector.add(3);
   
      System.out.println("Vector: ");
      Enumeration<Integer> enumeration = vector.elements();
      while(enumeration.hasMoreElements()){
         System.out.print(enumeration.nextElement() + " ");
      }

      List<Integer> list = new ArrayList<Integer>();
      list.add(1);list.add(2);list.add(3);

      System.out.println("\nList: ");
      Iterator<Integer> iterator = list.iterator();
      while(iterator.hasNext()){
         System.out.print(iterator.next() + " ");
      }

      System.out.println("\nList using ListItertor (Forward): ");
      ListIterator<Integer> listIterator = list.listIterator();
      while(listIterator.hasNext()){
         System.out.print(listIterator.next() + " ");
      }
      System.out.println("\nList using ListItertor (Backward): ");
      while(listIterator.hasPrevious()){
         System.out.print(listIterator.previous() + " ");
      }
   }
}

输出结果

Vector:
1 2 3
List:
1 2 3
List using ListItertor (Forward):
1 2 3
List using ListItertor (Backward):
3 2 1