HashMap的put方法-創(chuàng)新互聯(lián)

HashMap的put方法大體流程:

柳南網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,柳南網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為柳南上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營銷網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的柳南做網(wǎng)站的公司定做!

1、根據(jù)key通過哈希算法與運算得出數(shù)組下標(biāo);

2、如果數(shù)組下標(biāo)位置元素為空,則將key和value封裝成為Entry對象(JDK1.7中是Entry對象,JDK1.8中是Node對象)并放入該位置;

3、如果數(shù)組下標(biāo)位置元素不為空,則要分情況討論;

? (1):如果是JDK1.7,則先判斷是否擴容,如果要擴容就進行擴容,如果不用擴容就生成Entry對象,并使用頭插法添加到當(dāng)前位置的鏈表中;

? (2):如果是JDK1.8,則會先判斷當(dāng)前位置上的Node的類型,看是紅黑樹Node,還是鏈表Node;

? ①:如果是紅黑樹Node,則將key和value封裝為一個紅黑樹節(jié)點并添加到紅黑樹中,在這個過程中會判斷紅黑樹中是否存在當(dāng)前的key,如果存在則是更新value;

? ②:如果是鏈表節(jié)點Node,則將key和value封裝成為一個鏈表Node并通過尾插法插入到鏈表的最后位置去。由于是尾插法,所以需要遍歷鏈表,在遍歷鏈表的過程中會判斷是否存在當(dāng)前key,如果存在則更新value。當(dāng)遍歷完鏈表后,將新鏈表Node插入到鏈表中,插入到鏈表中后,會判斷當(dāng)前鏈表節(jié)點個數(shù),如果是大于8,那么則會將該鏈表轉(zhuǎn)成紅黑樹;

? ③:在將key和value封裝為Node插入到鏈表或紅黑樹中后,再判斷是否需要擴容,如果需要擴容就擴容,不需要就結(jié)束put方法。

?????

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:HashMap的put方法-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://www.muchs.cn/article18/dsssdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈域名注冊、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司