- Map
特點(diǎn):key-value映射 - HashMap
key無(wú)序唯一
value無(wú)序不唯一
key和value都可以為null
數(shù)組+鏈表(1.7) 數(shù)組+鏈表+紅黑樹(1.8)
線程不安全燥狰,效率比較高
A為什么初始化的時(shí)候大小是2的N次冪?
Q初始化的時(shí)候調(diào)用次方法對(duì)大小進(jìn)行設(shè)置
image.png
好處:方便&運(yùn)算强重,提高效率偏窝;在擴(kuò)容涉及數(shù)據(jù)的遷移過(guò)程康吵,遷移的時(shí)候只要判斷二進(jìn)制的前一位是0或者1即可席覆,如果是0表示位置不變销睁,如果 1 將索引位置加上舊數(shù)組長(zhǎng)度即為新數(shù)組下標(biāo)幌陕。
擴(kuò)容大小是2倍诵姜,保證了大小符合2的N次冪。
- 1.7源碼知識(shí)點(diǎn)
1.默認(rèn)初始容量
2.加載因子
3.put操作(設(shè)置值搏熄,計(jì)算hash,擴(kuò)容棚唆,數(shù)據(jù)遷移) - 1.8源碼知識(shí)點(diǎn)
擾動(dòng)函數(shù)
- HashTable
線程安全,效率低
key和value都不可以是null
- LinkedHashMap
有序的HashMap 速度快
鏈表 - TreeMap
有序
紅黑樹