B站上的狂神說java怎么樣 java hashmap為什么用數(shù)組和鏈表?
java hashmap為什么用數(shù)組和鏈表?數(shù)組的優(yōu)點(diǎn)是可以根據(jù)下標(biāo)快速找到相應(yīng)的元素。鏈表的優(yōu)點(diǎn)是它只知道插入位置的前后,不需要一個接一個的位置。這提高了插入或刪除的速度。HashMap的底層是一個
java hashmap為什么用數(shù)組和鏈表?
數(shù)組的優(yōu)點(diǎn)是可以根據(jù)下標(biāo)快速找到相應(yīng)的元素。鏈表的優(yōu)點(diǎn)是它只知道插入位置的前后,不需要一個接一個的位置。這提高了插入或刪除的速度。HashMap的底層是一個一維數(shù)組,數(shù)組的每個元素都是一個鏈表。添加元素時,首先通過hashcode定位數(shù)組下標(biāo),然后通過equals方法判斷鏈表中是否有相同的鍵。如果它們不同,則會添加到鏈表中,如果它們相同,則會覆蓋值。
在jdk8中,如果有8個以上的鏈表元素,鏈表將存儲為紅黑樹以提高性能。
Hashcode方法可以盡可能減少哈希沖突,具有最高的性能。如果鏈表較長,則性能較低。
Java源碼hashmap,當(dāng)key的hashcode相同的時候,為什么會把value加到鏈表里?
這是培訓(xùn)機(jī)構(gòu)告訴你的嗎?具體的年薪不僅僅是一個廣告的問題,還取決于你完成學(xué)業(yè)后去哪一個城市,去哪一類公司。一般的培訓(xùn)機(jī)構(gòu)會吹噓自己有一種特殊的技能,但事實可能并非如此