我知道哈希表是如何工作的。但是,在链接列表的帮助下,当多个值存储在同一个地方时,我不确定get(key)的可能实现。 例如: set(1,'Val1')存储在索引7处 set(2,'Val2')也存储在索引7处。(内部实现创建一个链表并在索引7处存储指针。这是可以理解的。)
但我想现在我打电话给get(2)。哈希表如何知道返回哪个值。因为我的哈希函数会将其解析为索引7.但是在索引7处有2个值。 一种可能的方法是在链接节点上存储值和密钥。 还有其他可能的实现吗?
答案 0 :(得分:1)
浏览链接列表并对密钥' 2进行线性搜索。散列函数和散列表大小的属性应该保证这些列表'长度平均为O(1)。
我认为您误解了哈希表必须存储其密钥的事实。哈希函数仅用于加速插入/查找。