前言接着上面一篇讲述了 Hash 与 Hash表 与 HashCode、HashMap 数据结构、HashMap 的容量 下面我们继续说说碰撞和手写实现一下Hash 碰撞问题什么是 Hash 碰撞通过...hash 方法操作后,得到了两个相同的结果在我们这里,我们对 HashCode 值进行 %16,有可能两个对象取模的结果是一样的因为有 Hash碰撞,数组的利用率很难达到 100%解决 Hash 碰撞为了解决...Hash 碰撞,在里面引入了链表,采用了 头 插入链表的方式。...// 如果有元素,有hash碰撞,就要把数据使用头插法 插入到链表的头部,记录原来的值 table[hashValue] = new Entry(k, v, hashValue...// 如果有元素,有hash碰撞,就要把数据使用头插法 插入到链表的头部,记录原来的值 table[hashValue] = new Entry(k, v, hashValue