HashMap的实现原理
底层使用hash表数据结构,即数组+(链表|红黑树)。
添加数据时,计算key的值确定元素在数组中的下标,key相同则替换,不同则存入链表或红黑树中。
获取数据通过key的hash计算数组下标获取元素。
HashMap的JDK1.7和JDK1.8有什么区别
JDK1.8之前采用的拉链法,数组+链表。
JDK1.8之后采用数组+链表+红黑树,链表长度大于8且数组长度大于64则会从链表转化为红黑树。
底层使用hash表数据结构,即数组+(链表|红黑树)。
添加数据时,计算key的值确定元素在数组中的下标,key相同则替换,不同则存入链表或红黑树中。
获取数据通过key的hash计算数组下标获取元素。
JDK1.8之前采用的拉链法,数组+链表。
JDK1.8之后采用数组+链表+红黑树,链表长度大于8且数组长度大于64则会从链表转化为红黑树。