今天趁有空特意從網上整理資料方便日後回憶。
一、list:、有順序以線性方式儲存,可以存放重複物件
執行緒安全方法:list list = collections.synchronizedlist(new linkedlist(...));
linkedlist:雙向鍊錶實現儲存 索引資料慢插入數度較快 執行緒不安全(比安全效能好)
arraylist:陣列方式儲存資料 索引資料快插入資料慢 執行緒不安全
vector:陣列方式儲存資料 索引資料快插入資料慢 執行緒安全
stack:繼承自vector,實現乙個後進先出的堆疊
二、set:無順序,不包含重複的元素
hashset:為快速查詢設計的set。存入hashset的物件必須定義hashcode()。
treeset: 儲存次序的set, 底層為樹結構。使用它可以從set中提取有序的序列。
linkedhashset:具有hashset的查詢速度,且內部使用鍊錶維護元素的順序(插入的次序)。於是在使用迭代器遍歷set時,結果會按元素插入的次序顯示。
三、map:鍵必須是唯一
同步方法:map m = collections.synchronizedmap(new treemap(...));
hashtable:基於雜湊表的實現 允許空鍵空值 執行緒安全
hashmap:基於雜湊表的實現 允許空鍵空值 執行緒不安全 (與hashtable基本一致)
treemap: 基於紅黑樹資料結構的實現 不允許空鍵空值 執行緒不安全
weakhashmap:改進的hashmap,它對key實行「弱引用」,如果乙個key不再被外部所引用,那麼該key可以被gc**。
在除需要排序時使用treeset,treemap外,都應使用hashset,hashmap,因為他們的效率更高。
四、sparsearray:採用了二分法方式儲存資料(安卓的乙個集合類)
android系統建議我們用sparsearray來代替hashmap
sparsearray的使用基本與list一樣
**
java學習筆記4 13,List,Set,Map
1.概述 list 列表 集合 list內的元素可以重複,而且是有序排列,預設順序為加入的先後順序,通常支援null元素 set 集 內部元素沒有順序,而且不能重複,通常支援null元素,如果加入的元素在容器內已經有了,則加不進去 map 對映 map容器中的每乙個元素都是以 鍵物件 值物件 的形式...
Java集合 Map集合
map map 用於儲存具有對映關係的資料,因此 map 集合裡儲存著兩組值,一組值用於儲存 map 裡的 key,另外一組用於儲存 map 裡的 value map 中的 key 和 value 都可以是任何引用型別的資料 map 中的 key 不允許重複,即同乙個 map 物件的任何兩個 key...
Java集合 ArrayList集合
以陣列實現。節約空間,但是陣列有容量限制。超出限制時會增加50 容量,用system.arraycopy 複製到新的陣列,因此最好能給出陣列大小的預估值。預設第一次插入元素時建立大小為10 的陣列。按照陣列下標來訪問元素 get i set i,e 的效能很高,這是陣列的基本優勢。直接在陣列末尾加入...