国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java中的集合類

2019-11-14 15:02:15
字體:
來源:轉載
供稿:網友

實線邊框的是實現類,比如ArrayList,LinkedList,HashMap等,折線邊框的是抽象類,比如AbstractCollection,AbstractList,AbstractMap等,而點線邊框的是接口,比如Collection,Iterator,List等。

上述所有的集合類,都實現了Iterator接口,這是一個用于遍歷集合中元素的接口,主要包含hashNext(),next(),remove()三種方法。它的一個子接口LinkedIterator在它的基礎上又添加了三種方法,分別是add(),PRevious(),hasprevious()。也就是說如果實現Iterator接口,那么在遍歷集合中元素的時候,只能往后遍歷,被遍歷后的元素不會在遍歷到,通常無序集合實現的都是這個接口,比如HashSet,HashMap;而那些元素有序的集合,實現的一般都是LinkedIterator接口,實現這個接口的集合可以雙向遍歷,既可以通過next()訪問下一個元素,又可以通過previous()訪問前一個元素,比如ArrayList。

1、ArrayList、LinkedList

兩者都是有序的,允許重復元素,在定位元素、增刪元素上效率不同

2、HashSet、TreeSet、LinkedHashSet

HashSet無序不可重復

TreeSet比HashSet有所改進,是一個有序的集合(默認使用紅黑樹完成排序)。這里排序是通過元素比較為依據,不是插入的順序。

LinkedHashSet在HashSet的基礎上又形成了雙向鏈表,可以記住插入的順序

3、HashMap、TreeMap、LinkedHashMap

HashMap鍵必須唯一,值可以重復,沒有順序

TreeMap在HashMap的基礎上有所改進,通過比較鍵值來實現排序,是一個有序的鍵值對。

LinkedHashMap在HashSet的基礎上又形成了雙向鏈表,用來記住插入的順序。

另外,LinkedHashMap可以按照訪問順序,對映射條目進行調整,使得每次被訪問的條目都會自動移動到雙向鏈表的尾部,如果要使用這種功能,請使用LinkedHashMap<K,V>(initialCapacity,loadFactor,true)

4、WeakHashMap

以弱鍵實現的基于哈希表的 Map。在 WeakHashMap中,當某個鍵不再正常使用時,將自動移除其條目。

使用短時間內就過期的緩存時最好使用weakHashMap,它包含了一個自動調用的方法expungeStaleEntries,這樣就會在值被引用后直接執行這個隱含的方法,將不用的鍵清除掉。

 

參考:

http://blog.csdn.net/liulin_good/article/details/6213815

java核心技術 卷I 基礎知識》

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灌南县| 阿城市| 汝南县| 那坡县| 肃南| 麟游县| 姜堰市| 台中县| 吉木乃县| 岢岚县| 天峨县| 盐源县| 兴仁县| 米林县| 凤阳县| 安陆市| 托克逊县| 鄂托克前旗| 绥棱县| 富源县| 孝昌县| 富蕴县| 孝感市| 佛坪县| 浮山县| 宁海县| 英德市| 临洮县| 嘉荫县| 瓮安县| 河曲县| 彭山县| 灵台县| 阜康市| 长阳| 年辖:市辖区| 临夏市| 阿图什市| 诸城市| 蓝田县| 永登县|