Java之集合總結

2021-07-02 04:28:31 字數 2684 閱讀 5526

1:集合(自己補齊)

collection(單列集合)

list(有序,可重複)

arraylist

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

執行緒不安全,效率高

vector

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

執行緒安全,效率低

linkedlist

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

執行緒不安全,效率高

set(無序,唯一)

hashset

底層資料結構是雜湊表。

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

執行順序:

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

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

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

是false:就直接新增到集合

否:就直接新增到集合

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

linkedhashset

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

由鍊錶保證元素有序。

由雜湊表保證元素唯一。

treeset

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

如何保證元素唯一性呢?

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

如何保證元素的排序呢?

兩種方式

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

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

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

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

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介面

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

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

2:到底使用那種集合(自己補齊)

看需求。

是否是鍵值物件形式:

是:map

鍵是否需要排序:

是:treemap

否:hashmap

不知道,就使用hashmap。

否:collection

元素是否唯一:

是:set

元素是否需要排序:

是:treeset

否:hashset

不知道,就使用hashset

否:list

要安全嗎:

是:vector(其實我們也不用它,後面我們講解了多執行緒以後,我在給你回顧用誰)

否:arraylist或者linkedlist

增刪多:linkedlist

查詢多:arraylist

不知道,就使用arraylist

不知道,就使用arraylist

3:集合的常見方法及遍歷方式

collection:

add()

remove()

contains()

iterator()

size()

遍歷:增強for

迭代器|--list

get()

遍歷:普通for

|--set

map:

put()

remove()

containskey(),containsvalue()

keyset()

get()

value()

entryset()

size()

遍歷:根據鍵找值

根據鍵值對物件分別找鍵和值

作業:我講解過的任意乙個集合,我要求你儲存什麼,你就能夠儲存什麼。

並且,還要能夠遍歷出來。

4:arraylist,linkedlist,hashset,hashmap(掌握)

儲存字串和自定義物件資料並遍歷

5:集合的巢狀遍歷(理解)

Java之集合類應用總結

1.集合類類圖 collection list linkedlist arraylist vector stack set hashset treeset linkedhashset map hashtable hashmap weakhashmap sortedmap treemap 2.分類介紹...

Java集合類之再總結

collection list linkedlist arraylist vector stack set hashset treeset linkedhashset map hashtable hashmap weakhashmap sortedmap treemap 2.分類介紹 collect...

Java之集合類應用總結

1.集合類類圖 collection list linkedlist arraylist vector stack set hashset treeset linkedhashset map hashtable hashmap weakhashmap sortedmap treemap 2.分類介紹...