Enumeration 接口的作用与 Iterator 接口类似,但只提供了遍历 Vector 和 Hashtable 类型集合元素的功能,不支持元素的移除操作。
例如:遍历Vector<E> v
中的元素:
for (Enumeration<E> e = v.elements();e.hasMoreElements();)
System.out.println(e.nextElement());
Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。
区别:Enumeration速度是Iterator的2倍,同时占用更少的内存。但是,Iterator远远比Enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的。
Iterator 接口的用法:
Iterator it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}