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