gpt4 book ai didi

c# - .NET HashTable 与 Dictionary - Dictionary 能一样快吗?

转载 作者:IT王子 更新时间:2023-10-29 03:28:37 27 4
gpt4 key购买 nike

我正在尝试找出何时以及为何使用字典或哈希表。我在这里做了一些搜索,发现人们在谈论我完全同意的字典的通用优势,这导致了装箱和拆箱的优势,从而获得了轻微的性能提升。

但是我也读过字典不会总是按照插入的顺序返回对象,它是排序的。哈希表将在哪里。据我了解,这会导致 HashTable 在某些情况下更快。

我的问题是,这些情况可能是什么?我上面的假设是不是错了?您可能会在什么情况下选择一个优先于另一个,(是的,最后一个有点模棱两可)。

最佳答案

System.Collections.Generic.Dictionary<TKey, TValue>System.Collections.Hashtable类都在内部维护一个哈希表数据结构。 它们都不保证保留项目的顺序。

撇开装箱/拆箱问题不谈,大多数时候,它们的性能应该非常相似。

它们之间的主要结构差异是 Dictionary依靠链接(为每个哈希表桶维护一个项目列表)来解决冲突,而 Hashtable使用重新散列解决冲突(发生冲突时,尝试另一个散列函数将 key 映射到存储桶)。

使用 Hashtable 几乎没有什么好处如果您的目标是 .NET Framework 2.0+,则为类。它实际上已被 Dictionary<TKey, TValue> 废弃.

关于c# - .NET HashTable 与 Dictionary - Dictionary 能一样快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1089132/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com