Java代码仅使用数组实现哈希表

时间:2012-04-16 13:57:54

标签: java hashmap hashtable

我将在这篇评论的前言中说我理解哈希表是如何工作的但是我不确定如何仅使用原语从头开始实现一个哈希表。

是否有人能够仅使用数组提供哈希表的Java代码实现?

我怎么会开始用Java编写哈希表?

如何仅使用基元来再次编码链表列表?

干杯!

1 个答案:

答案 0 :(得分:1)

OpenJDK提供的代码很难理解,所以我会写一个简短的想法如何做...

我最近采用的一种方法是将数组本身用作符号表。然后,数组的索引将是键(散列键)和元素值(无论您想要存储什么)。由于数组具有固定的大小,并且散列键可以是任何整数,因此我们面临挑战:裁剪散列值,使它们与数组的大小处于相同的范围内。如果数组的长度为5,则键需要介于0和4之间。否则,我们会将值放在数组外的插槽中=>很多很多例外。

当你想避免碰撞时,这个挑战变得特别有趣......

this page on princeton可以找到很多帮助。

祝你好运!