全部 –
提出一个具体的问题,我最近碰巧,令人惊讶的没有找到任何令人信服的答案.
什么是C#Hashtable(和Dictionary – 内部使用Hashtable)利用的内部后台数据结构
所以在本质上 – 什么样的桶是存储在 – ArrayList,LinkedList(我知道这里不是这里的答案),树结构等关键值对.
不寻找碰撞策略等 – 只需一次计算哈希码 – Hashtable内部使用什么数据结构来存储此值?
任何解释或文章指针将真的有帮助.
解决方法
字典内部数据结构有一个很好的解释:
https://www.simple-talk.com/blogs/2011/09/16/the-net-dictionary/,对于HashTable来说也是如此
https://www.simple-talk.com/blogs/2011/09/16/the-net-dictionary/,对于HashTable来说也是如此
简而言之
散列表由两个数组组成:桶和条目
当添加项目时,哈希码将以当前数组大小的形式生成,并确定该项目所存储的时隙.
但是,该插槽不是条目中的那个,它实际上是在桶中的那个.
散列索引中的桶中的值是数据实际存储在条目中的时隙的索引,并且简单地分配给数组中的下一个空闲时隙.