JAVA集合總結

2021-09-12 12:54:22 字數 1264 閱讀 2895

collection集合體系的關係圖

其中,collection介面的父介面是iterable,它所存的物件型別均為object

list介面:是有序的,其元素是可以重複的。

set介面:是不一定有序的,其元素是不可以重複的。

list介面的實現類:

arraylist:底層實現是靜態陣列,預設的初始化空間為10,在移除或者新增元素時不方便,所以要盡量閉避免記憶體的重新分配,可以系列化。執行緒不安全,執行快。

linklist:底層實現是鍊錶,所以在新增或移除某個元素時方便。

vector:底層實現是靜態陣列,執行緒安全,執行慢。

這三個實現類均「查詢快,增刪慢

set介面的實現類

hashset::使用了 hashmap中的所有key值,來保證唯一性

當自定義型別存放於hashset中時,為保證元素內容不重複,必須覆蓋hashcode()方法和equals()方法。

treeset:是sortedset的實現類,而sortedset是set子介面,預設按自然排序排列

當自定義型別存放於treeset集合中時,對元素自動排序,則要求元素物件必須實現comparable介面,覆蓋compareto方法,指定排序規則

map介面:用於存放任意鍵值對,雜湊雜湊介面

鍵:無序,無下標,不能重複

值:無序,無下標,可以重複

map介面的實現類

hashmap:是雜湊雜湊: 底層資料結構是「靜態陣列+紅黑樹",執行緒不安全,允許用null作為key或是value。

properties: hashtable的子類,要求key和value都是string。通常用於配置檔案的讀取

hashtable執行緒安全。

注意:

properties:實現了sortedmap介面(是map的子介面),可以對key自動排序。

treemap: 實現了sortedmap介面(是map的子介面),可以對key自動排序。

JAVA 集合總結

如果涉及到堆疊,佇列等操作,應該考慮用list,對於需要快速插入,刪除元素,應該使用linkedlist,如果需要快速隨機訪問元素,應該使用arraylist。如果程式在單執行緒環境中,或者訪問僅僅在乙個執行緒中進行,考慮非同步的類,其效率較高,如果多個執行緒可能同時操作乙個類,應該使用同步的類。要...

java 集合總結

結構 collection list linkedlist arraylist vector stack set map hashtable hashmap weakhashmap 區別 類是否有序 是否執行緒安全 是否允許重複 是否允許空值 常用情景 描述總結 linkedlist有序否 是是對於...

java集合總結

set 其中的值不允許重複,無序的資料結構 list 其中的值允許重複,因為其為有序的資料結構 map 成對的資料結構,健值必須具有唯一性 鍵不能同,否則值替換 list按物件進入的順序儲存物件,不做排序或編輯操作。set對每個物件只接受一次,並使用自己內部的排序方法 通常,你只關心某個元素是否屬於...