我将在此评论的开头说我了解哈希表的工作原理,但是我不确定如何仅使用原语从头开始实现哈希表。
任何人都能够提供仅使用数组的哈希表的 Java 代码实现吗?
我什至如何开始用 Java 编写哈希表?
我将如何仅使用原语再次编写链表哈希表?
干杯!
OpenJDK 给出的代码可能很难理解,所以我会写一个简短的想法如何做到这一点......
我最近这样做的一种方法是将数组本身用作符号表。然后数组的索引将是键(散列键)和元素的值(无论你想存储什么)。由于数组具有固定的大小,并且哈希键可以是任何整数,我们面临着一个挑战:裁剪哈希值,使它们与数组的大小在相同的范围内。如果说数组的长度为 5,则键需要在 0 和 4 之间。否则我们会将值放入数组之外的插槽中 => 很多异常。
当您想避免碰撞时,这个挑战变得特别有趣......
在princeton 的这个页面上可以找到很多帮助。
祝你好运!