java 集合總結

2021-08-28 08:37:20 字數 1689 閱讀 5781

1.集合

collection(單列集合)

list(有序,可重複)

arraylist

底層資料結構是陣列,查詢快,增刪慢

執行緒不安全,效率高

vector

底層資料結構是陣列,查詢快,增刪慢

執行緒安全,效率低

linkedlist

底層資料結構是鍊錶,查詢慢,增刪快

執行緒不安全,效率高

set(無序,唯一)

hashset

底層資料結構是雜湊表。

雜湊表依賴兩個方法:hashcode()和equals

執行順序:

首先判斷hashcode()值是否相同

是:繼續執行equals(),看其返回值

是true:說明元素重複,不新增

是false:就直接新增到集合

否:就直接新增到集合

最終:自動生成hashcode()和equals()即可

linkedhashset

底層資料結構由鍊錶和雜湊表組成。

由鍊錶保證元素有序。

由雜湊表保證元素唯一。

treeset

底層資料結構是紅黑樹。(是一種自平衡的二叉樹)

如何保證元素唯一性呢?

根據比較的返回值是否是0來決定。

如何保證元素的有序呢?

兩種方式

自然排序(元素具備比較性)

讓元素所屬的類實現comparable介面

比較器排序(集合具備比較性)

讓集合接收乙個comoarator的實現類物件

map(雙列集合)

a:map集合的資料結構僅僅針對鍵有效,與值無關。

b:儲存的是鍵值對形式的元素,鍵唯一,值可重複。

hashmap    執行緒不安全,效率高

底層資料結構是雜湊表。

雜湊表依賴兩個方法:hashcode()和equals

執行順序:

首先判斷hashcode()值是否相同

是:繼續執行equals(),看其返回值

是true:說明元素重複,不新增

是false:就直接新增到集合

否:就直接新增到集合

最終:自動生成hashcode()和equals()即可

linkedhashmap

底層資料結構由鍊錶和雜湊表組成。

由鍊錶保證元素有序。

由雜湊表保證元素唯一。

hashtable    執行緒安全,效率低

底層資料結構是雜湊表。

雜湊表依賴兩個方法:hashcode()和equals

執行順序:

首先判斷hashcode()值是否相同

是:繼續執行equals(),看其返回值

是true:說明元素重複,不新增

是false:就直接新增到集合

否:就直接新增到集合

最終:自動生成hashcode()和equals()即可

treemap         

底層資料結構是紅黑樹。(是一種自平衡的二叉樹)

如何保證元素唯一性呢?

根據比較的返回值是否是0來決定。

如何保證元素的有序呢?

兩種方式

自然排序(元素具備比較性)

讓元素所屬的類實現comparable介面

比較器排序(集合具備比較性)

讓集合接收乙個comoarator的實現類物件

JAVA 集合總結

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

java 集合總結

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

java集合總結

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