我正在寻找哈希表如何工作的解释 - 用像我这样的傻瓜的简单英语!
例如,我知道它需要密钥,计算哈希值(我正在寻找解释如何)然后执行某种模数来计算它存储在存储值的数组中的位置,但这就是我的知识停止的地方.
任何人都可以澄清这个过程吗?
编辑:我没有具体询问如何计算哈希码,而是概述哈希表的工作原理.
我已将Dictionary(TKey,TValue)用于多种用途.但我没有遇到任何实现GetHashCode()的场景,我认为这是因为我的键是主要类型,如int和string.我很想知道场景(真实世界的例子),当一个人应该使用自定义对象的键,从而实现方法GetHashCode()Equals()等.
并且,使用自定义对象的密钥是否需要实现这些功能?
我正在寻找尝试理解字典中存储/检索机制的Item[TKey]来源Dictionary<TKey,TValue>,以及为什么它比仅逐个检查每个条目更快.
我迷茫的地方是在buckets场上的素数用户和相互作用Entry<TKey,TValue>.next.
有人可以向我解释逻辑,或指向我可以理解它的参考.
谢谢.