集合知識點彙總
集合知識點彙總:
collection (單列集合)
list (有序,可重複)
arraylist
底層資料結構是陣列,查詢快,增刪慢,
執行緒不安全,效率高
vector
底層資料結構是陣列,查詢快,增刪慢,
執行緒安全,效率低
linkedlist
底層資料結構是鍊錶,查詢慢,增刪快,
執行緒不安全,效率高
set (無序,唯一)
hashset
底層資料結構是雜湊表。
雜湊表依賴兩個方法hashcode() 和 equals().
執行順序:
首先判斷hashcode()值是否相同。
是: 繼續執行equals(),看其返回值
是true:說明元素重複,不新增。
是fales:就直接新增到集合。
否:就直接新增到集合。
最終:自動生成hashcode()和equals()即可。
linkedhashset
底層資料結構由鍊錶和雜湊表組成。
由鍊錶保證元素有序,
由雜湊表保證元素唯一
treeset
底層資料結構是紅黑樹。(是一種自平衡的二叉樹)。
如何保證元素的唯一性呢?
根據比較的返回值是否為0來保證元素的唯一性
如何保證元素的排序呢?
兩種方式:
通過自然排序(元素具備比較性)
讓元素所屬的類實現comparable介面
比較器排序(集合具備比較性)
讓集合接收乙個comparator的實現類物件
map (雙列集合)
a: map集合的資料結構僅僅針對鍵有效,與值無關。
b: 儲存的是鍵值對形式的元素。鍵唯一,值可重複。
hashmap
底層資料結構是雜湊表。
雜湊表依賴兩個方法hashcode() 和 equals().
執行順序:
首先判斷hashcode()值是否相同。
是: 繼續執行equals(),看其返回值
是true:說明元素重複,不新增。
是fales:就直接新增到集合。
否:就直接新增到集合。
最終:自動生成hashcode()和equals()即可。
linkedhashmap
底層資料結構由鍊錶和雜湊表組成。
由鍊錶保證元素有序,
由雜湊表保證元素唯一
hashtable
treemap
底層資料結構是紅黑樹。(是一種自平衡的二叉樹)。
如何保證元素的唯一性呢?
根據比較的返回值是否為0來保證元素的唯一性
如何保證元素的排序呢?
兩種方式:
通過自然排序(元素具備比較性)
集合的選擇使用:
集合的選擇使用:
看需求:
是否是鍵值對形式:
是:map
鍵是否需要排序:
是:treemap
否:hashmap
不知道:就是用hashmap
否:collection
元素是否唯一:
是:set
元素是否需要排序
是:treeset
否:hashset
不知道:就使用hashset
否:list
要安全麼?
是:vector
否:arraylist 或者linkedlist
增刪多: linkedlist
查詢多:arraylist
不知道,就用arraylist
不知道,就使用arraylist
各種集合常見功能和遍歷方式:
集合的常見方法和遍歷方式
collection
add()
remove()
contains()
iterator()
size()
遍歷方式:
增強for
迭代器|---list
get()
遍歷:普通for
|---set
map:
put()
remove()
containskey() , containsvalue()
keyset()
get()
value()
entryset()
size()
遍歷方式:
根據鍵找值
根據鍵值對物件分別找鍵和值
Java集合知識點總結
list有序且允許元素重複。map也屬於集合系統,但和collection介面沒關係。map是key對value的對映集合,其中key列就是乙個集合。key不能重複,但是value可以重複。sortedset和sortedmap介面對元素按指定規則排序,sortedmap是對key列進行排序。has...
java集合幾個知識點
1.arraylist在預設容量是10,每次進行add的時候會檢查容量,如果需要擴容則增加1.5倍,如果仍然小,則設為增加後的長度大小 2.copyonwritearraylist 保證執行緒安全的方法是 不對讀進行限制,寫的操作加重入鎖,寫的時候拷貝乙份陣列,並將新資料寫入,完成後再將引用返回。重...
Java集合知識點梳理
由collection介面派生的兩個介面是list和set,都可以使用迭代器來遍歷,它們都實現了iterator介面 一.list 實現list介面的常用類有linkedlist,arraylist,vector和stack,list允許有相同的元素。arraylist 基於陣列方式實現,無容量的限...