我正在寻找尝试理解字典中存储/检索机制的Item[TKey]来源Dictionary<TKey,TValue>,以及为什么它比仅逐个检查每个条目更快.
我迷茫的地方是在buckets场上的素数用户和相互作用Entry<TKey,TValue>.next.
有人可以向我解释逻辑,或指向我可以理解它的参考.
谢谢.
看看这篇维基百科文章:Hashtable
字典只是哈希表的强类型实现.它有许多"桶",用钥匙放置物品.
当你向哈希表添加一个项目时,它会使用密钥的哈希码来决定它将把它放在哪个桶中(这通常是一个非常快速的操作,只需调用GetHashCode并对其应用模数).一旦它有了存储桶(这是某种列表),它会检查存储桶是否已包含具有相同密钥的项目,如果不是这种情况则添加它.这也非常快,因为每个存储桶只包含散列表中所有项目的一小部分.
当您想要根据其密钥检索项目时,它会根据密钥的哈希码确定存储桶,并在存储桶中查找具有此密钥的项目.
当然,这是一个非常简单的描述......请查看维基百科文章以获取更多详细信息.
| 归档时间: |
|
| 查看次数: |
4941 次 |
| 最近记录: |