Data structures 当多个键与链接节点一起存储时,哈希表get(key)是如何工作的?

Data structures 当多个键与链接节点一起存储时,哈希表get(key)是如何工作的?,data-structures,hashtable,Data Structures,Hashtable,我知道哈希表是如何工作的。但我不确定在链表的帮助下,当多个值存储在同一个位置时get(键)的可能实现。 例如: 集合(1,'Val1')存储在索引7中 集合(2,'Val2')也存储在索引7中。(内部实现创建一个链表并将指针存储在索引7上。这是可以理解的) 但我在想,如果现在我调用get(2)。哈希表如何知道返回哪个值。因为我的散列函数将把它解析为索引7。但在指数7中有两个值。 一种可能的方法是在链接节点上存储值和键。 是否有其他不同的实现方式?浏览链接列表并对键“2”进行线性搜索。哈希函数的属

我知道哈希表是如何工作的。但我不确定在链表的帮助下,当多个值存储在同一个位置时get(键)的可能实现。 例如: 集合(1,'Val1')存储在索引7中 集合(2,'Val2')也存储在索引7中。(内部实现创建一个链表并将指针存储在索引7上。这是可以理解的)

但我在想,如果现在我调用get(2)。哈希表如何知道返回哪个值。因为我的散列函数将把它解析为索引7。但在指数7中有两个值。 一种可能的方法是在链接节点上存储值和键。
是否有其他不同的实现方式?

浏览链接列表并对键“2”进行线性搜索。哈希函数的属性和哈希表的大小应该保证这些列表的平均长度为O(1)


我认为您误解了哈希表必须存储其密钥的事实。哈希函数只用于加速插入/查找。

我认为你是对的。我有点被误解了。它们必须存储密钥和值。