1. 程式人生 > >Enumeration介面和Iterator介面的區別

Enumeration介面和Iterator介面的區別

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());
}