迭代器:它是一個通用迭代器,因為我們可以將它應用於任何 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。 |
相關用法
- Java Iterator和Spliterator的區別用法及代碼示例
- Java Iterator轉Spliterator用法及代碼示例
- Java Iterator轉Stream用法及代碼示例
- Java Iterator轉List用法及代碼示例
- Java Iterator轉Iterable用法及代碼示例
- Java Iterator用法及代碼示例
- Java Iterable forEach()用法及代碼示例
- Java Iterable轉Collection用法及代碼示例
- Java Iterable轉Stream用法及代碼示例
- Java Iterable用法及代碼示例
- Java Integer divideUnsigned()用法及代碼示例
- Java Integer equals()用法及代碼示例
- Java Integer getInteger()用法及代碼示例
- Java Integer longValue()用法及代碼示例
- Java Integer max()用法及代碼示例
- Java Integer min()用法及代碼示例
- Java Integer numberOfLeadingZeros()用法及代碼示例
- Java Integer numberOfTrailingZeros()用法及代碼示例
- Java Integer parseInt()用法及代碼示例
- Java Integer parseUnsignedInt()用法及代碼示例
- Java Integer remainderUnsigned()用法及代碼示例
- Java Integer reverseBytes(int i)用法及代碼示例
- Java Integer toBinaryString()用法及代碼示例
- Java Integer toHexString()用法及代碼示例
- Java Integer toUnsignedLong()用法及代碼示例
注:本文由純淨天空篩選整理自argha_c14大神的英文原創作品 Difference between Iterator and Enumeration in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。