在这里,我们将看到Enumeration与Iterator有何不同?
枚举是Java中引入的接口。
在通过Enumeration迭代元素时,我们只能遍历旧元素,因此在这里我们将看到旧
继承的概念:早期或早期版本的Java定义了各种类,并且当时还没有一个用于存储对象和收集框架的接口,所以当收集框架来了,所以这些类被重新设计以支持收集框架。
我们可以使用elements()
Enumeration接口的方法创建一个Enumeration对象。
语法:
Enumeration en = collection_object.elements();
当通过Enumeration迭代对象或元素时,我们只能执行读取操作。
枚举比Iterator快。
对于枚举,我们将使用两种方法检查现有元素并迭代下一个元素。
布尔值 hasMoreElements()
目的 nextElement()
枚举概念仅适用于遗留类,因此它不支持少量集合,这就是为什么它不是通用接口的原因。
通过使用枚举,我们只能获取ReadAccess,而不能执行任何删除操作。
示例
import java.util.*; class EnumerationClass { public static void main(String[] args) { //创建一个Vector实例 Vector v = new Vector(); //通过使用addElement()Vector类添加少量元素 v.addElement(10); v.addElement(20); v.addElement(30); v.addElement(40); v.addElement(50); //打印矢量列表 System.out.println(v); //创建一个枚举对象 Enumeration en = v.elements(); //循环检查现有的更多元素 while (en.hasMoreElements()) { Integer in = (Integer) en.nextElement(); } System.out.println(v); } }
输出结果
E:\Programs>javac EnumerationClass.java Note: EnumerationClass.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. E:\Programs>java EnumerationClass [10, 20, 30, 40, 50] [10, 20, 30, 40, 50]
Iterator是Java中引入的接口。
在使用Iterator迭代元素时,我们可以执行读取和删除操作,而不能执行任何其他操作,例如添加对象,替换对象。
我们可以使用iterator()
Iterator接口的方法创建一个Iterator对象。
语法:
Interface_name object_name = Collection_class.Iterator_method
迭代器比枚举慢。
对于Iterator,我们将使用两种方法来检查现有元素并迭代下一个元素。
布尔值 hasNext()
目的 next()
迭代器概念不仅适用于遗留类,而且还支持非遗留类,因此这就是通用接口的原因。
示例
import java.util.*; class IteratorClass { public static void main(String[] args) { //创建一个Set接口对象 Set set = new HashSet(); //通过使用add()方法在集合中添加一些元素 set.add("Java"); set.add("Python"); set.add("C++"); set.add("Ruby"); set.add("C"); //创建Iterator接口的对象 Iterator itr = set.iterator(); //遍历元素的循环 while (itr.hasNext()) { String str = (String) itr.next(); if (str.equals("C")) itr.remove(); } //Set接口的显示元素 System.out.println("The final list of Iterator :" + set); } }
输出结果
E:\Programs>javac IteratorClass.java Note: IteratorClass.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. E:\Programs>java IteratorClass The final list of Iterator :[Ruby, Python, C++, Java]