字典如何进行快速查找

ja7*_*a72 6 c# dictionary

我正在寻找尝试理解字典中存储/检索机制的Item[TKey]来源Dictionary<TKey,TValue>,以及为什么它比仅逐个检查每个条目更快.

我迷茫的地方是在buckets场上的素数用户和相互作用Entry<TKey,TValue>.next.

有人可以向我解释逻辑,或指向我可以理解它的参考.

谢谢.

Tho*_*que 5

看看这篇维基百科文章:Hashtable

字典只是哈希表的强类型实现.它有许多"桶",用钥匙放置物品.

当你向哈希表添加一个项目时,它会使用密钥的哈希码来决定它将把它放在哪个桶中(这通常是一个非常快速的操作,只需调用GetHashCode并对其应用模数).一旦它有了存储桶(这是某种列表),它会检查存储桶是否已包含具有相同密钥的项目,如果不是这种情况则添加它.这也非常快,因为每个存储桶只包含散列表中所有项目的一小部分.

当您想要根据其密钥检索项目时,它会根据密钥的哈希码确定存储桶,并在存储桶中查找具有此密钥的项目.

当然,这是一个非常简单的描述......请查看维基百科文章以获取更多详细信息.