hashmap-put方法過程

來源:互聯網
上載者:User

標籤:node   tab   break   說明   形式   ref   import   ash   hash   

1、執行hash(Object key)得到hash值,再判斷table是否為空白,為空白表明這是第一個元素插入,則先resize,初次大小預設16。

2、若不需要初始化,則判斷要插入結點的位置是否為空白,也就是沒有產生Hash地址衝突,是則直接放入table。

3、否則產生了衝突,那麼有兩種情況:key相同,key不同。

4、如果p是TreeNode的執行個體,說明p下面是紅/黑樹狀結構,需要在樹中找到一個合適的位置插入。

5、p下面的結點數未超過8,則以單向鏈表的形式存在,逐個往下判斷:①如果下一個位為空白,插入,並且判斷當插入後容量超過8則轉化成紅/黑樹狀結構,break。②如果下一個位有相等的hash值,則覆蓋,break。

6、判斷新插入這個值是否導致size已經超過了閾值,是則進行擴容。


java7:新值插入到鏈表的最前面,先(判斷)擴容後插入新值。
java8:新值插入到鏈表的最後面,先插值再(判斷)擴容。

 

https://www.cnblogs.com/jzb-blog/p/6637823.html
http://www.importnew.com/28263.html

hashmap-put方法過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.