treemap,hashmap,linkedhashmap:非執行緒安全
hashtable,properties:執行緒安全
treemap:紅黑樹
hashmap: 陣列 + 單鏈表/紅黑樹
linkedhashmap:hashmap + 雙向鍊錶transient node table;
static class nodeimplements map.entry
hashtable,properties:陣列 + 單鏈表transient linkedhashmap.entryhead;
transient linkedhashmap.entrytail;
static class entryextends hashmap.node
}
treemap:k不允許null值,v允許存在多個null值
hashmap,linkedhashmap:k僅允許存在乙個null值
v允許存在多個null值public v put(k key, v value)
static final int hash(object key)
hashtable,properties:kv均不允許null值
同時,hashmap中定義的一些常量,這裡也需要進行一下說明
佇列初始化長度
default_initial_capacity = 16
載入因子,當map中的元素個數》初始容量*載入因子時,佇列會進行擴容
擴容大小為原來的大小,即擴容後的長度=擴容前x2
default_load_factor = 0.75
map中元素個數超過min_treeify_capacity,單鏈表長度超過該值,
則把單鏈表轉換成紅黑樹
treeify_threshold = 8
紅黑樹長度小於該值,將紅黑樹轉化為單鏈表
untreeify_threshold = 6
map中元素個數超過該值,才會進行樹化,否則僅會resize
min_treeify_capacity = 64
Map介面的實現類
雜湊表就是一種以鍵 值 key indexed 儲存資料的結構,只要輸入待查詢的值即 key,即可查詢到其對應的值。雜湊的思路很簡單,如果所有的鍵 hashcode 都是整數,那麼就可以使用乙個簡單陣列來實現 將鍵作為索引,值即為其對應的值,這樣就可以快速訪問任意鍵的值。簡單的計算方法 hashco...
Map介面及其實現類
一 map的實現類 map 雙列資料,儲存key value對的資料。實現類 hashmap 作為map的主要實現類 執行緒不安全的,效率高,可以儲存null的key和value 子類 linkedhashmap 保證在遍歷map元素時,可以按照新增的順序實現遍歷。原因 在原有的hashmap底層結...
java中的Map介面以及實現類
map介面 雙列資料,儲存key value對的資料。1.hashmap作為map的主要實現類,執行緒不安全的,效率高,可以儲存null的key和value。hashmap底層 陣列和鍊錶 jdk7 陣列,鍊錶和紅黑樹 jdk8 hashmap的內部類 node static class nodei...