1.定义
HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫作Entry,这些键值对分散存储在一个数组中,这个数组就是HashMap的主干。(默认数组长度是16,保证是2的整数幂)
2.常用的两个方法get和put原理
1.Put原理:利用哈希函数来确定Entry的插入下标index,然后存储。
2.Get原理:利用Key通过映射得到对应的下标index,然后查找到所对应的Value.(由于存在hash冲突,同一个位置可能匹配到多个Entry,这时候就需要顺着对应链表的头字节,一个一个向下来查找)
JDK1.7和1.8数据结构的区别
1.7采用数组+链表
1.8采用数组+链表/红黑树(链表长度大于8,散列表容量大于64时,会将链表转化为红黑树)