Algorithm C#中的哈希表类型是使用链接或开放寻址实现的?

Algorithm C#中的哈希表类型是使用链接或开放寻址实现的?,algorithm,data-structures,Algorithm,Data Structures,如果是开放寻址,则如何生成探测序列。请给出链接它使用开放寻址(或我们常说的“封闭哈希”)和双哈希来生成探测地址序列。GetHashCode()确定第一个探测索引;间隔也是GHC()的函数 例如,如果您进入System.Collections.Hashtable.Add()的源代码,您自己就可以看到这一点。[http://referencesource.microsoft.com/] 快乐的黑客 net framework中的哈希表使用开放寻址或双哈希技术,而字典使用链接作为冲突避免技术 哈希表还

如果是开放寻址,则如何生成探测序列。请给出链接

它使用开放寻址(或我们常说的“封闭哈希”)和双哈希来生成探测地址序列。GetHashCode()确定第一个探测索引;间隔也是GHC()的函数

例如,如果您进入System.Collections.Hashtable.Add()的源代码,您自己就可以看到这一点。[http://referencesource.microsoft.com/]


快乐的黑客

net framework中的哈希表使用开放寻址或双哈希技术,而字典使用链接作为冲突避免技术


哈希表还是字典?我会用链锁的方式来赚钱。有效的开放寻址通常需要两个哈希函数,而CLR中的对象只能保证提供一个(GetHashCode())。此外,使用开放寻址从哈希表中删除是一件痛苦的事情。虽然有相关的方案,但链接在实践中并不是一个很大的问题(当然不是根据我几年前运行的基准测试)。