五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

2023-07-20 09:34 作者:bili_70586305476  | 我要投稿

HashMap的底層實(shí)現(xiàn)原理簡單分析:

1.在使用無參構(gòu)造方法創(chuàng)建一個新的HashMap時,系統(tǒng)自動分配了一個閾值為0.75.該閾值的含義指的是,當(dāng)HashMap中存放的鍵值對總數(shù)超過桶數(shù)(無參構(gòu)造時,默認(rèn)有16個桶)*閾值時,桶數(shù)將自動進(jìn)行擴(kuò)容.而進(jìn)行帶參構(gòu)造時,可以傳只傳一個數(shù),在經(jīng)過特定的位運(yùn)算后,得到2的n次方的一個數(shù)即作為桶的數(shù)量,傳入兩個數(shù)時,第一個數(shù)的作用與只傳入一個參數(shù)時一直,第二個參數(shù)則作為閾值.

2.在向該HashMap中通過put增加元素時,先通過計算一個特殊的算法值,由key的哈希值與該值右移16位的值做異或運(yùn)算.當(dāng)key為null時,返回0.

3.第一次通過put方法時,會創(chuàng)造出長度為桶數(shù)的的鏈表數(shù)組.將之前提到的特殊算法值與桶數(shù)-1作位與運(yùn)算.得到0-桶數(shù)-1之間的一個數(shù),將該鍵值對,放在對應(yīng)的下標(biāo)的鏈表數(shù)組下

4.后續(xù)添加過程為,先計算key的特殊算法值,并放在指定的鏈表數(shù)組處,如果該鏈表處為空,之間將鍵值對放置于此.如果不為空,判斷該鏈表為節(jié)點(diǎn),樹,還是鏈表,

1)如果是單節(jié)點(diǎn),比較key值與特殊算法值,如果相同,則用新的value替換舊的value

2)如果是樹,就將該鍵值對加入

3)如果是鏈表,將該key與鏈表中所有的key值對比,當(dāng)該key與所有key都不同時,放在最后一個節(jié)點(diǎn)上,如果節(jié)點(diǎn)的數(shù)量達(dá)到9個,則開始判斷是否樹化,樹化時判斷長度是否大于32,不滿足則使桶的長度翻倍.


千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java的評論 (共 條)

分享到微博請遵守國家法律
叙永县| 金沙县| 邯郸县| 嫩江县| 获嘉县| 贵溪市| 南通市| 横山县| 余江县| 德庆县| 巨鹿县| 宾阳县| 临猗县| 保靖县| 深泽县| 日照市| 白银市| 兰溪市| 金堂县| 农安县| 永春县| 木里| 治县。| 原阳县| 化州市| 剑河县| 榆社县| 靖安县| 安阳县| 嵊泗县| 丰都县| 临夏市| 新建县| 和平区| 长葛市| 尼玛县| 兴山县| 铜陵市| 集贤县| 龙陵县| 望城县|