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 底層是陣列資料...