国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java集合繼承體系詳解

Java集合繼承體系詳解

2021-01-29 11:44snow_7 Java教程

這篇文章主要為大家詳細介紹了Java集合繼承體系,具有一定的參考價值,感興趣的小伙伴們可以參考一下

java的集合類是一種特別有用的工具,它可以用于存儲數量不等的多個對象,并可以實現常用的數據結構,如棧、隊列等。java集合還可以用于板寸具有映射關系的關聯數組。

java集合就像是一個容器,我們可以把多個對象(實際上是對象的引用,習慣上叫對象,)保存到集合容器中。在jdk1.5以前java集合會丟失容器中所有對象的數據類型,jdk1.5以后增加了泛型,java集合可以記住容器中對象的數據類型。

Java集合繼承體系詳解

java集合大致可以分為三個體系:set list map.所有的集合類都位于java.util包下面。

collection接口

collection接口是list、 set、和queue接口的父接口。
collection所代表的是一種規則,它所包含的元素都必須遵循一條或者多條規則。如有些允許重復而有些則不能重復、有些必須要按照順序插入而有些則是散列,有些支持排序有些不支持排序。

一、list接口

list接口是collection接口的直接接口。list代表的是有序的collection,集合中的每個元素都有其對應的索引。list中允許有重復的元素,可以通過索引來訪問指定位置的集合元素。因為list集合默認按元素的添加順序設置元素的索引。

(1)arraylist、vector、stack

arraylist和vector作為list的兩個典型實現類,完全支持list的全部功能。

arraylist和vector類的底層都是基于數組來儲存集合元素,封裝了一個動態的object[]數組,是一種順序存儲的線性表。

arraylist和vector在用法上幾乎完全相同,只是vector在jdk1.0時就存在,它的方法名比較冗長、比arraylist包含的方法多,源碼比arraylist包含的源碼也多,arraylist的序列化實現比vector現在vector基本上被arraylist所取代了。

主要區別:arraylist是線程不安全的,vector是線程安全的。

如果需要在多線程環境下使用list集合,而且需要保證線程安全,依然可以避免使用vector,而是考慮將arraylist包裝成線程安全的集合類。java提供的collections工具類,通過該工具類synchronizelist方法即可以把arraylist包裝成線程安全的arraylist.

stack

vector提供了一個子類,它用于模擬“棧”這種數據結構,棧通常是先進后出的容器。stack提供了額外的5個方法,使得vector可以當做棧來使用。出棧pop,入棧push,訪問棧頂元素peek(),判斷棧是否為空empty(),檢測一個元素在堆棧中的位置serch().

(2)linkedlist

linkedlist是一個鏈式存儲的線性變,本質上是一個雙向鏈表,它不僅實現了list接口還實現了dueue接口(雙端隊列,既具有隊列的特征,也具有棧的特征),所以linkedlist不僅可以做雙向鏈表來使用,還可以當棧和隊列來使用。

linkedlist對元素的插入、刪除元素時速度非常快。

linkdedlist也是非同步的。若要實現同步訪問,可以采取
list list = collections.synchronizelist(new linkedlist(.....));

(3)異同點對比

 (1)arraylist和linkedlist

1)arraylist是基于動態數組實現的,linkedlist是基于雙向鏈表實現的。
2)arraylist比較適用于隨機存取,(可直接通過索引,linkedlist需要通過指針遍歷);linkedlist比較適用于增加刪除操作(對于單條的插入和刪除操作arraylist比linkedlist速度快,對于插入好人刪除操作,arraylist需要移動后面的所有元素。)

二、set接口

set是一種不允許包含相同元素的collection。它維持自己的內部排序,隨機訪問沒有任何意義。

(1)hashset

hashset是set接口的典型實現,hashset按hash算法來儲存集合中的元素,具有很好的存取和查找功能。
具有以下特點:

1)不保證元素的排列順序,有可能變化;
2)hashset不是同步的;
3)集合元素可以為空。

(2)treeset

 treeset是sortedset接口的唯一實現,treeset可以確保元素處于排序狀態,treeset并不是根據元素的插入順序進行排序的,而是根據實際值進行排序。支持兩種排序方式:自然排序和定制排序。

(3)enumset

是為枚舉類設計的集合類,enumset不允許加入null元素。如果試圖插入null,會拋出空指針異常。
set的三個實現類都是現成不安全的。

三、map接口

map保存具有映射關系的數據,因此map集合里保存著兩組值,一組值用來保存map里的key,一組用來保存map里的value,key和value可以是任何引用類型的數據。

map里的key不允許重復,value可以重復。key和value之間存在單向的一對一的關系,通過指定的key,總能找到唯一的、確定的value。

(1)hashmap與hashtable

hashmap與hashtable都是map的典型實現類,他們之間的關系類似于arraylist和vector:hashtable是一個古老的map實現類,在jdk1.0時就出現了。

主要區別:

1)hashtable是一個線程安全的map實現,但是hashmap是線程不安全的實現,hashmap的性能要比hashtable高一些,盡量避免使用hashtable,多個線程訪問一個map對象又要保證線程安全時,可以使用collections中的方法把hashmap變成線程安全的。
2)hashtable不允許使用null作為key和value,如果試圖把null加入hashtable中,將會引發空指針異常。

(2)treemap

treemap是map的子接口sortedmap的的實現類,與treeset類似的是treemap也是基于紅黑樹對treemap中所有的key進行排序,從而保證key-value處于有序狀態,treemap也有兩種排序方式:

1)自然排序:treemap的所有key必須實現comparable接口,而且所有key應該是同一類的對象,否則會拋出classcastexception.

2)定制排序:創建treemap時,傳入一個comparator對象,該對象負責對treemap中所有的key進行排序。
由于treemap支持內部排序,所以通常要比hashmap和hashtable慢。

四、queue接口

queue模擬了隊列這種數據結構,隊列通常是“先進先出”的數據結構,通常不允許隨機訪問隊列中的元素。
queue常用的實現類:linkedlist和priorityqueue

(1)linkedlist

linkedlist它不僅實現了list接口還實現了dueue接口(雙端隊列,既具有隊列的特征,也具有棧的特征),dueue接口是queue的子接口。

(2)priorityqueue

priorityqueue保存隊列元素的的順序并不是按照加入隊列的順序,而是按照隊列元素大小進行重新排序。所以當調用peek和poll方法來取隊列中的元素的時候,并不是先取出來隊列中最小的元素。從這個意義上來看,priorityqueue已經違反了隊列的基本規則。priorityqueue不允許插入null元素。

總結:

線程安全的有vector stack hashtable

不允許插入空元素的有hashtable priorityqueue enumset

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/snow_7/article/details/51791112

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品一区二区三区成人精品 | 国产精品一区二区视频 | 国产第一区在线 | www.色94色.com| 亚洲成人一区二区三区 | 国产一级一级国产 | av有声小说一区二区三区 | 羞羞视频在线免费观看 | 国产成人精品一区二区三区福利 | 国产精品一二三区视频出来一 | 亚洲精品久久久一区二区三区 | 羞羞视频免费观 | 93看片淫黄大片一级 | 欧美日韩国产精品一区二区 | 想看一级毛片 | 一级片在线观看 | 国内偷拍av | 国产在线一区二区三区 | 毛片视频免费播放 | 免费观看视频毛片 | 91在线在线 | 精品国产一区二区三区在线观看 | 国产日韩欧美在线观看 | 日韩欧美国产一区二区 | 久久合| 亚洲综合无码一区二区 | 国产精品美女久久久久aⅴ国产馆 | 国产精品v一区二区三区 | 伊人伊人网 | 亚洲一区成人在线观看 | 岛国黄色大片 | 欧美日韩一区在线观看 | 欧美日韩成人在线视频 | 免费黄色在线 | 欧美日本韩国一区二区三区 | 黄色短视频在线观看 | 国产乱码精品一区二区三区av | 久久久美女视频 | 日本一区二区三区四区 | 高清视频一区 | 日韩在线一区二区三区免费视频 |