数据结构
数组+链表

HashMap 基于 Hash 算法实现的
- 当我们往Hashmap中put元素时,利用key的hashCode重新hash计算出当前对象的元素在数组中的下标
存储时,如果出现key的hash值对数组长度取模后对就的下标的位置已经有元素了,此时有两种情况。
(1) 如果key相同(这里面指的相同是当key的hash值和key的equals方法得到的值都 相等时),则覆盖原始值;<br /> (2) 如果key不同,则将当前的key-value头插法放入链表中
获取时,直接找到hash值对应的下标,在进一步判断key是否相同(指的意思同上),从而找到对应值。
- 理解了以上过程就不难明白HashMap是如何解决hash冲突的问题,核心就是使用了数组的存储方式,然后将冲突的key的对象放入链表中,一旦发现冲突就在链表中做进一步的对比。