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