枚举与迭代器
Java中有许多数据结构充当集合,如向量、哈希表和实现Java集合框架的类(即HashMap、HashSet、ArrayList、TreeSet、TreeMap、LinkedList、LinkedHashMap和LinkedHashSet)。在Java中有无数的元素迭代到各个对象。Java提供了两个接口来简化这项任务。枚举和迭代器是java.util文件提供通过一组项枚举序列或对象的功能的包。jdk1.0中引入了枚举器,jdk1.2中引入的迭代器实际上重复了枚举器的功能(在集合框架中)。
什么是枚举?
枚举是Java中的一个公共接口,在JDK1.0中引入,它提供通过元素序列进行枚举的能力。它在下面找到java.util文件包裹。当枚举接口由对象实现时,该对象可以生成一系列元素。枚举接口有两个方法。hasMoreElements()方法将测试此枚举是否包含更多元素,nextElement()将返回序列中的下一个元素(如果至少还有一个元素)。换句话说,通过连续调用nextElement(),程序员可以访问序列中的各个元素。例如,要使用枚举器打印Vector v1中的所有元素,可以使用以下代码片段。
枚举e=v1.elements();
While(e.ha**oreelements()){
System.out.println(e.nextElement());
}
也可以使用SequenceOr枚举流来定义input对象的输入流。
什么是迭代器?
迭代器是Java.util文件包,它允许迭代实现集合框架的collecti***对象的元素(如ArrayList、LinkedList等)。这是jdk1.2中引入的,并取代了Java集合框架中的枚举器。迭代器有三种方法。方法hasNext()测试集合中是否还有剩余元素,next()方法返回序列中的下一个元素。remove()方法可用于从基础集合中移除当前元素。例如,要使用迭代器打印Vector v1中的所有元素,可以使用以下代码片段。
迭代器i=v1.elements();
While(i.hasNext()){
System.out.println(e.next());
}
枚举和迭代器的区别是什么?