带你看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

相关文章
相关标签/搜索