首先 哈希表的存储原理是数组+单链表 或 数组+红黑树的存储结构
put:将 put(K,V)中的K值通过hashCode转化为一个哈希值, 用哈希值取模数组的长度 得到一个索引值,并且如果 说 不同的K值转化的哈希值通过取模得到的索引值相同,则称之为哈希冲突现象 面对这种现象通常由三种情况:
1.这个时候如果该索引值的数组上已有别的数据,则调用equals方法 一个一个对比K键值 若期间发现了有和K键值一样的键值 则将新K键值对应的Value覆盖老K的value
2若发现没有别的数组,则创建一个Node对象放入
3.若发现该索引值已有别的Node对象并且K键值都和put上的K不同 则新建一个Node对象插入到单链表的的末尾
get:通过传入K键值 同时把K键值转化为hash值 ,同样通过取模数组长度得到索引值,然后到数组对应索引值的位置 遍历查找相对应的K键值 从而得到对应的V值
03-28
2087
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)