帶你看JDK源碼之HashMap

備註:先列出大綱,再進行逐步研究。

1、HashMap概述

HashMap是基於哈希表的Map接口的非同步的KV數據結構,此類容許null的鍵和null的值,它不保證映射順序,特別是不保證該順序永久不變,新增數據時,將覆蓋相同key的數據。數組

2、HashMap的數據結構

HashMap是由數組+鏈表組成,在jdk1.8中它是由數組+鏈表+紅黑樹組成,其結構以下:數據結構

2一、HashMap中存放的基礎類型

2二、如何肯定咱們存放數據在數組中的位置

2三、爲何HashMap中有鏈表和紅黑樹,在什麼狀況下使用它們

2四、在什麼狀況下數組會擴展其容量

2五、如何調整可以讓HashMap獲取數據的速度更快,存儲的時候效率更高

 

3、HashMap的put(K,V)方法

4、HashMap的get(K)方法

5、HashMap的resize()方法

 

基於HashMap的擴展spa

一、  紅黑樹對象

二、  HashCode接口

三、  Equalsget

四、  << 、>>、>>>運算同步

五、  & 、^ 、~、| 位運算io

六、  接口和抽象類(Map和AbstractMap)class

七、  Transient關鍵字效率

八、  泛型

九、  Integer等基礎數據類型對應的對象

十、Serializable接口

十一、Cloneable 接口

十二、serialVersionUID的做用

1三、static

1三、final

1四、內部類,如static class Node<K,V>

1五、相似HashMap的同步實現ConcurrentHashMap

相關文章
相關標籤/搜索