在Java中使用Hashtable获取密钥的索引

时间:2014-04-05 18:10:08

标签: java algorithm dictionary key hashtable

我正在编写Dictionary类的实现。我目前正在编写add方法

(公开V 添加(K键,V值))

算法:

if the table is too full
    rehash
grab the index based on the key
probe with the index and key to resolve collisions
if the table at the index is null, or has been removed
    increment the number of entries
    increment the number of locations used
    set the table at that index to a new tableentry
else
    grab the value currently at that index
    set the value at the index to the new value
return the old value

我无法弄清楚如何根据提供的密钥获取索引。我也不知道如何引用Hashtable中的特定索引。

由于

1 个答案:

答案 0 :(得分:1)

假设您出于某种原因从头开始重新实现Dictionary / Hashtable(如果您不是,并且使用 Hashtable - 那么您引用的算法完全不合适)。

实现数组支持的哈希表时的经典方法是计算键的哈希值,然后将该键值的数组索引中的值放入数组大小(以任何方式计算冲突后)。

所以,“根据密钥获取索引”将是index = hash(key) % backing_array_length;