C# Hashtable 内部数据结构

标签 c# data-structures

全部-

问我最近遇到的一个具体问题,令人惊讶的是没有找到任何令人信服的答案。

C# Hashtable(和内部使用 Hashtable 的字典)利用的内部支持数据结构是什么

所以本质上 - 什么样的桶是存储在 - ArrayList,LinkedList(我知道这不是这里的答案),树结构等中的键值对

不寻找冲突策略等 - 只需计算哈希码 - Hashtable 在内部使用什么数据结构来存储该值?

任何解释或文章指针都会很有帮助。

最佳答案

字典内部数据结构有一个很好的解释: https://www.simple-talk.com/blogs/2011/09/16/the-net-dictionary/ , HashTable也是如此

简而言之 哈希表由两个数组组成:桶和条目

添加项目时,哈希码以当前数组大小为模生成,它决定了项目存储的位置。

但是,那个slot不是entries里面的那个,它实际上是buckets里面的那个。

buckets 中散列索引处的值是条目中实际存储数据的槽的索引,并且它被简单地分配给数组中的下一个空闲槽。

关于C# Hashtable 内部数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18773884/

相关文章:

c# webbrowser 单击表单中的单选按钮

algorithm - 检查String是否有平衡括号的递归算法

python - 有效地合并 Python 中的两个数据集

C# 拆分字符串并在 If 语句中使用

algorithm - 很具体的树遍历方法

java - PAN 卡号验证符合以下标准

Python:在包含子字符串的字典中查找(字符串)键

c# - 如何修复我的后台解决方案以进行线程安全调用?

c# - *{} 母版页中的类用另一个类子页面覆盖

c# 并行与顺序