全部-
问我最近遇到的一个具体问题,令人惊讶的是没有找到任何令人信服的答案。
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/