亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大佬們遇到過這個問題嗎?WeakHashMap在哪里把hash沖突的節點鏈到鏈表上的?求指導!

大佬們遇到過這個問題嗎?WeakHashMap在哪里把hash沖突的節點鏈到鏈表上的?求指導!

MYYA 2019-06-09 09:40:49
問題:在閱讀java8中WeakHashMap源碼時,發現一個問題,put操作在發生hash沖突時,只有替換操作,但是沒有新增鏈表節點的操作,鏈表節點是什么時候鏈上去的?java8中的put源碼如下:publicVput(Kkey,Vvalue){Objectk=maskNull(key);inth=hash(k);Entry[]tab=getTable();inti=indexFor(h,tab.length);//這里只是在鏈表上找到key存在的節點做替換,但是對于key不存在的情況,//并沒有創建新的節點鏈到原來的鏈表后面。for(Entrye=tab[i];e!=null;e=e.next){if(h==e.hash&&eq(k,e.get())){VoldValue=e.value;if(value!=oldValue)e.value=value;returnoldValue;}//?????當hash相同但是key不同不是應該創建新節點鏈到鏈表上嗎?}modCount++;Entrye=tab[i];tab[i]=newEntry(k,value,queue,h,e);if(++size>=threshold)resize(tab.length*2);returnnull;}
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 317 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號