HashMap的原理
HashMap的数据结构为数组+链表,以key,value的形式存值,通过调用put与get方法来存值与取值。
它内部维护了一个Entry数组,得到key的hashCode值将其移位按位与运算,然后再通过跟数组的长度-1作逻辑与运算得到一个index值来确定数据存储在Entry数组当中的位置,通过链表来解决hash冲突问题。当发生碰撞了,对象将会储存在链表的下一个节点中。
关于HashMap更多内容,
1.put与get得调用过程?
2. 数组长度为什么要保证2的n次方,
3. 确定数据下面位置时为什么是异或运算?
更多内容请扫描关注本人公众号获取更多内容
以上都为我个人理解,如有不正确希望大家指出,共同讨论。