當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Iterator和Enumeration的區別用法及代碼示例


迭代器它是一個通用迭代器,因為我們可以將它應用於任何 Collection 對象。通過使用Iterator,我們可以執行讀取和刪除操作。它是枚舉的改進版本,具有元素的 remove-ability 附加函數。

每當我們想要枚舉所有 Collection 框架實現的接口(如 Set、List、Queue、Deque)以及 Map 接口的所有實現類中的元素時,都必須使用迭代器。迭代器是整個集合框架唯一可用的遊標。

用法:

// Here "c" is any Collection object. itr is of
// type Iterator interface and refers to "c"
Iterator itr = c.iterator();

枚舉枚舉(或enum)是一種用戶定義的數據類型。它主要用於為整型常量命名,這些名稱使程序易於閱讀和維護。在 Java(從 1.5 開始)中,枚舉使用 enum 數據類型表示。 Java 枚舉比 C/C++ 枚舉更強大。在Java中,我們還可以向其中添加變量、方法和構造函數。枚舉的主要目的是定義我們自己的數據類型(枚舉數據類型)。

用法:

// A simple enum example where enum is declared 
// outside any class (Note enum keyword instead of 
// class keyword) 
enum Color 
{ 
    RED, GREEN, BLUE; 
}

迭代器和枚舉的區別:

枚舉和迭代器的函數是相同的。使用枚舉隻能遍曆和獲取對象,而使用迭代器我們還可以添加和刪除對象。所以如果你願意的話迭代器會很有用
操作列表,枚舉用於隻讀訪問。

迭代器 枚舉
迭代器是一個通用遊標,因為它適用於所有集合類。 枚舉不是通用遊標,因為它僅適用於遺留類。
迭代器具有remove()方法。 枚舉沒有remove()方法。
迭代器可以進行修改(例如,使用 remove() 方法在遍曆期間從集合中刪除元素)。 枚舉接口作為一種隻讀接口,在遍曆Collection中的元素時不能對Collection進行任何修改。
迭代器不是遺留接口。迭代器可用於 HashMap、LinkedList、ArrayList、HashSet、TreeMap、TreeSet 的遍曆。 枚舉是一個遺留接口,用於遍曆Vector、Hashtable。

相關用法


注:本文由純淨天空篩選整理自argha_c14大神的英文原創作品 Difference between Iterator and Enumeration in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。