如何将对象的哈希值存储在字典中?

Jul*_*lio 1 c# hash dictionary data-structures

我的朋友最近在一次采访中被问到以下问题,我正在为他找一个确定的答案.

如何将对象的哈希值存储在字典中?

提前干杯!

Bri*_*eon 6

并非所有词典都一样.我将假设您指的是哈希表,特别是Dictionary类.在这种情况下,散列值不会存储在数据结构中的任何位置.它仅用于定位铲斗.使用的具体实现维护两个数组.一个用于桶,一个用于条目.项始终添加到条目数组中的下一个可用插槽.哈希值对此无任何影响.bucket数组包含条目数组的索引.散列值用于定位桶阵列中的适当槽,然后从那里可以提取索引到条目数组中.这个实现的巧妙之处在于枚举Dictionaryclass是按时间顺序排列的(假设当然没有删除后跟插入).当然,这是一个永远不应该依赖的实现细节,但它是所用算法的有趣工件.