迭代器用于遍历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