HashMpa结构源码剖析
HashMap 本质是一个数组,jdk1.8里面的源码就是 一个 Node[]数组
这个Node类型是HashMap中的一个静态内部类,实现了Map.Entry接口
Map.Entry接口利用泛型规范了键值对的基本结构
也就是说HashMap是一个数组,这个数组中每个元素都是一个键值对的结构
此外再观察Node类型,会发现它还有一个Node类型的引用
那么每个Node可以理解为一个Node的链式的集合
那么HashMap就就可以进一步理解每个元素都是一个键值对的链式集合
如果继续观察,会发现Node还有一个hash字段,这个hash字段是用来计算这个node在node数组中的位置
计算的方式是采用和数组的最大下标做与运算,