HashMap继承于AbstractMap,实现了Map接口
1.HashMap的核心属性:capacity,loadFactor,threshold,size,table,three_threshold
1)HashMap核心原理是数组+链表或红黑树(JDK1.8)
2)capacity:该属性就是初始化数组之后的最大长度
3)loadFactor:加载因子,是一个小数,一般和capacity组合计算出一个新值(扩容阀值)
4)size:当前存入数据节点的总个数
5)threshold:扩容阀值,数组扩容的触发值,由capacity*loadFactor计算得出
6)table(Node[]):HashMap的核心数组,元素类型为Node,可以是链表实现类,也可以是红黑树实现类
7)three_threshold:触发链表转变为红黑树的阀值,当链表长度大于three_threshold(默认为8),链表变为红黑树
2.Node类型数据结构
1)Node是HashMap的内部类,实现了Map.Entry接口,是一种链表实现方式
2)Node节点下的四个属性:hash-哈希运算计算出的hash,key,value,next-下一个节点的值
3