Java 中的迭代器

java programming java 8object oriented programming

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

  • 枚举 − 枚举是 JDK 1.0 中引入的初始迭代器,仅适用于较旧的集合,例如 Vector 或 HashTable。枚举只能用于向前导航。不能使用枚举删除元素。

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

  • 列表迭代器 − 列表迭代器是列表类型集合的迭代器,支持双向导航。

示例

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("
List: ");       Iterator<Integer> iterator = list.iterator();       while(iterator.hasNext()){          System.out.print(iterator.next() + " ");       }       System.out.println("
List using ListItertor (Forward): ");       ListIterator<Integer> listIterator = list.listIterator();       while(listIterator.hasNext()){          System.out.print(listIterator.next() + " ");       }       System.out.println("
List 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

相关文章