您好,登錄后才能下訂單哦!
今天小編給大家分享的是關(guān)于HashMap的工作原理介紹,相信很多人都不太了解,為了讓大家更加了解HashMap的工作原理,所以給大家總結(jié)了以下內(nèi)容,一起往下看吧。一定會(huì)有所收獲的哦。
原理介紹如下:
HashMap是基于Hash算法實(shí)現(xiàn)的。
在使用put(key,value)方法時(shí),HashMap會(huì)根據(jù)key.hashCode()方法得出key的hash值,然后根據(jù)hash值找到對應(yīng)的bucket位置,如果這個(gè)區(qū)域已經(jīng)有元素存在,則會(huì)再做一個(gè)euqal()比較,如果相等,則新增失敗,因?yàn)镠ashMap不允許有相同key值,如果不相等,只是單純的hash沖突。
JDK1.8前,HashMap會(huì)把這個(gè)元素存入鏈表的下一個(gè)節(jié)點(diǎn), HashMap在每個(gè)鏈表節(jié)點(diǎn)中儲(chǔ)存的都是鍵值對對象。JDK1.8之后,HashMap加入了紅黑樹,所以在鏈表節(jié)點(diǎn)數(shù)目超過8個(gè)后,會(huì)由鏈表轉(zhuǎn)為紅黑樹,而一旦小于,又會(huì)從紅黑樹轉(zhuǎn)回鏈表。
關(guān)于HashMap的工作原理介紹就分享到這里了,當(dāng)然并不止以上和大家分析的辦法,不過小編可以保證其準(zhǔn)確性是絕對沒問題的。希望以上內(nèi)容可以對大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。