【问题标题】:What is the purpose of hashtable datastructure (sorted by key hash) in c#?c#中hashtable数据结构(按key hash排序)的目的是什么?
【发布时间】:2021-11-26 19:58:30
【问题描述】:

我知道 hastable 数据结构将存储键值对。并且该键是根据哈希值排序的。

虽然排序后的列表是相同的,但按实际键值而不是哈希排序。

哈希表的目的是什么——或者换句话说,按哈希值排序键有什么好处?

【问题讨论】:

标签: c#


【解决方案1】:

哈希表可在 O(1) 中访问,而排序列表可在 O(log n) 中访问。

我还将在 Dictionary 与 HashTable 的比较中提供答案。虽然字典在概念上是一个哈希表,但它们有一些显着差异。

您可能希望使用 Dictionary 类而不是 Hashtable 类,因为 Dictionary 是泛型类型,而 Hashtable 不是。因此,您实际上使用 Dictionary 获得了类型安全性,因为您不能将任何随机对象插入其中,并且您不必强制转换取出的值。

还有一点需要注意,.NET Framework 中的 Dictionary 实现实际上是基于 Hashtable。您可以通过查看 HashTable 实现来验证这一点 - https://referencesource.microsoft.com/#mscorlib/system/collections/hashtable.cs

【讨论】:

    猜你喜欢
    • 2019-12-20
    • 1970-01-01
    • 2013-03-09
    • 2019-06-15
    • 2011-09-22
    • 1970-01-01
    • 2022-01-22
    • 2021-08-29
    • 2015-08-13
    相关资源
    最近更新 更多