日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Java技术——Iterator和Enumeration的不同

發布時間:2023/11/27 生活经验 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java技术——Iterator和Enumeration的不同 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0. IteratorEnumeration的不同

(1)兩者的函數接口不同

Enumeration只有2個函數接口,通過Enumeration我們只能讀取集合的數據,而不能對數據進行修改。 Iterator3個函數接口。Iterator除了能讀取集合的數據之外,也能對數據進行刪除操作。盡管前者還沒有被棄用但是已經被后者所代替了,Enumeration已經過時的,之所以沒有被棄用是因為它仍被幾種從以前版本遺留下來的類(例如Vector)所定義的方法中使用。

兩者的方法總結如下,區別一目了然:

//Enumeration指定下面的兩個方法: 
//當仍有更多的元素可提取時返回true;當所有元素都被枚舉了,則返回false
boolean hasMoreElements();
//將枚舉中的下一個對象做為一個類屬 Object的引用而返回
Object nextElement() ;

//Iterator接口中定義了三個方法:
//是否還有下一個元素
hasNext();
//返回下一個元素
next();
//刪除當前元素
remove();
//需要注意的是,調用next()方法后才可以調用remove()方法
//而且每次調用next()后最多只能調用一次remove()方法,否則拋出IllegalStateException異常


(2)Iterator支持fail-fast機制,而Enumeration不支持

Enumeration JDK 1.0添加的接口。使用到它的函數包括VectorHashtable等類, Enumeration存在的目的就是為它們提供遍歷接口,Enumeration本身并沒有支持同步,而在VectorHashtable實現Enumeration時,添加了同步。

Iterator JDK 1.2才添加的接口,它也是為了HashMapArrayList等集合提供遍歷接口。Iterator是支持fail-fast機制的

fail-fast 機制是指Java集合(Collection)中的一種錯誤機制。當多個線程對同一個集合的內容進行操作時,就可能會產生fail-fast事件。例如:當某一個線程A通過iterator去遍歷某集合的過程中,若該集合的內容被其他線程所改變了;那么線程A訪問集合時,就會拋出ConcurrentModificationException異常,產生fail-fast事件。


轉載于:https://www.cnblogs.com/qitian1/p/6461477.html

總結

以上是生活随笔為你收集整理的Java技术——Iterator和Enumeration的不同的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。