让我们想象一下,我们想要将数据放入Hashtable中。 Hash函数计算每个数据对象的Hashvalue,并将此哈希值放入表中(每个值都应该有自己的桶)。使用hashvalue,我们知道数据对象在表中的确切位置。
关键在这里发挥什么作用? Java中的HashMap需要为我们放入HashMap的每个值都有一个特定的键,并且使用键我们可以得到值。
我想知道我们想要放入Hashtable(在Java Hashmap中)的值,hashvalue和key之间的区别是什么?那背后的数学是什么?
答案 0 :(得分:3)
您始终需要原始密钥,以应对哈希冲突。哈希码(或您调用它时的哈希值)的要点是能够非常快速地找到键的可能的匹配。根据密钥,哈希码仅 - 值完全无关。
从逻辑上讲,哈希表的提取是:
null
以表明结果。(将哈希表划分为桶的确切方式是实现细节。有时每个桶只包含一个条目,但可以链接到其他桶;在其他情况下,桶可以包含多个条目。请参阅{ {3}}了解更多信息。)
这里的“条目”是{key, value, hash}
元组: