黑馬程式設計師 集合框架中的幾組比較

2021-06-19 15:29:13 字數 2323 閱讀 2967

vector和

arraylist1

、vector

是執行緒同步的,所以它也是執行緒安全的,而

arraylist

是執行緒非同步的,是不安全的。如果不考慮到執行緒的安全因素,一般用

arraylist

效率比較高。

2、如果集合中的元素的數目大於目前集合陣列的長度時,

vector

增長率為目前陣列長度的

100%,

而arraylist

增長率為目前陣列長度

的50%.

如過在集合中使用資料量比較大的資料,用

vector

有一定的優勢。

3,如果查詢乙個指定位置的資料,

vector

和arraylist

使用的時間是相同的,都是

0(1),

這個時候使用

vector

和arraylist

都可以。而

如果移動乙個指定位置的資料花費的時間為0(n-i)n

為總長度,這個時候就應該考慮到使用

linklist,

因為它移動乙個指定位置的資料

所花費的時間為0(1),

而查詢乙個指定位置的資料時花費的時間為

0(i)。

rraylist 和

vector

是採用陣列方式儲存資料,此陣列元素數大於實際儲存的資料以便增加和插入元素,都允許直接序號索引元素,但是插入資料要設計到陣列元素移動 等記憶體操作,所以索引資料快插入資料慢,

vector

由於使用了

synchronized

方法(執行緒安全)所以效能上比

arraylist

要差,linkedlist

使用雙向鍊錶實現儲存,按序號索引資料需要進行向前或向後遍歷,但是插入資料時只需要記錄本項的前後項即可,所以插入數度較快!

arraylist和

linkedlist

1.arraylist是實現了基於動態陣列的資料結構,

linkedlist

基於鍊錶的資料結構。

2.對於隨機訪問

get和

set,

arraylist

覺得優於

linkedlist

,因為linkedlist

要移動指標。

3.對於新增和刪除操作

add和

remove

,linedlist

比較佔優勢,因為

arraylist

要移動資料。

這一點要看實際情況的。若只對單條資料插入或刪除,arraylist

的速度反而優於

linkedlist

。但若是批量隨機的插入刪除數 據,

linkedlist

的速度大大優於

arraylist. 

因為arraylist

每插入一條資料,要移動插入點及之後的所有資料。

hashmap與

treemap

1、hashmap

通過hashcode

對其內容進行快速查詢,而

treemap

中所有的元素都保持著某種固定的順序,如果你需要得到乙個有序的結果你就應該使用

treemap

(hashmap

中元素的排列順序是不固定的)。

hashmap中元素的排列順序是不固定的)。

2、  

hashmap

通過hashcode

對其內容進行快速查詢,而

treemap

中所有的元素都保持著某種固定的順序,如果你需要得到乙個有序的結果你就應該 使用

treemap

(hashmap

中元素的排列順序是不固定的)。集合框架」提供兩種常規的

map實現:

hashmap

和treemap (treemap

實現sortedmap介面)

。 3、在map 

中插入、刪除和定位元素,

hashmap 

是最好的選擇。但如果要按自然順序或自定義順序遍歷鍵,那麼

treemap

會更好。使用

hashmap

要求新增的鍵類明確定義了

hashcode()

和 equals()

的實現。  這個

treemap

沒有調優選項,因為該樹總處於平衡狀態。

黑馬程式設計師 集合框架

集合框架 用於儲存的容器 特點 集合用於儲存物件,集合的長度是可變的 集合和陣列的區別 陣列長度不可變,集合的長度是可變的 陣列可以儲存基本資料型別,集合儲存的是物件 陣列只能儲存相同的資料型別,集合可以儲存不同的資料型別 集合再不斷的向上抽取,就形成了集合體系 集合體系頂層是collection介...

黑馬程式設計師 集合框架的使用

集合類的由來 物件用於封裝特有資料,物件多了需要儲存,如果物件個數不確定。就使用集合容器進行儲存。集合的特點 用於儲存物件的容器。集合的長度是可變的。集合中不可以儲存基本資料型別值。集合容器因為內部的資料結構不同,有多種具體容器。不斷的向上抽取,就形成了集合框架。框架的頂層是 collection ...

黑馬程式設計師 集合

collection list 元素是有序的,元素可以重複。因為該集合體系有索引。arraylist 底層的資料結構使用的是陣列結構。特點 查詢速度很快。但是增刪稍慢。執行緒不同步。linkedlist 底層使用的鍊錶資料結構。特點 增刪速度很快,查詢稍慢。執行緒不同步。vector 底層是陣列資料...