作者:mobiledu2502880517 | 来源:互联网 | 2023-08-20 22:41
参考:https://blog.csdn.net/mahl1990/article/details/79298579
原理 hashmap的底层原理数据结构散列表=数组+链表,即创建的时候初始化一个数组,然后在每个节点可以是一个链表
的,vs没V上的局势V是V的Vsdfsmlvsvs davs v ![在这里插入图片描述](https://img8.php1.cn/3cdc5/18bc4/c5a/ac8449a49f53b1ac.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyMjkwNjM5,size_16,color_FFFFFF,t_70)
当一个键值对发生put时,首先根据hash值找到这个元素在数组中的角标,如果这个位置已经有其他元素
1.由于同一个点是链式方式存储的,将会将原来的元素往后移 然后把新元素放到这个位置上
2.put冲突有两种情况
·` 1.hashcode相同 通过在hash法来解决
`` 2.键值相同 直接覆盖value
3.get 方法取值
会通过hash函数计算index,如果对应的是一个链表则会通过key.equal()方法来比较获取
HashMap是怎么解决碰撞问题的
当两个不同的键却又相同的hashCode时,他们会存储在一个bucket位置的链表中。键对象的equals()来找到键值对。