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.分類介紹...