C# 中 HashTable 和 Dictionary 的区别

csharpserver side programmingprogramming

HashTable 和 Dictionary 都是用于存储数据的数据结构类型。这两种数据结构都以键值对的形式保存存储的数据。

根据它们的主要特征之间的差异,我们可以按以下方式区分 HashTable 和 Dictionary −

Sr.不。KeyHashTableDictionary
1定义HashTable 是非泛型类型的集合,用于以键/值对的形式存储数据,并在 System.Collections 名称空间中定义。另一方面,Dictionary 是在 System.Collection.Generics 名称空间下定义的泛型类型集合,它也以键/值对的形式存储数据。
2DataType在 HashTable 中,相同或不同的数据类型数据可以存储为键和值,没有限制键和值必须属于相同的 DataType,然后才能存储在 HashTable 中。而且没有必要指定键和值的类型。另一方面,如果是 Dictionary,键和值必须是相同的 DataType,那么只能存储在 Dictionary 中,并且必须在创建时指定键和值的类型。
3数据检索如果是 HashTable,则与 Dictionary 相比,由于装箱和拆箱,数据检索速度较慢。另一方面,如果是 Dictionary,则数据检索速度更快,因为 Dictionary 不需要装箱和拆箱。
4空值如果是 HashTable,则在访问给定 HashTable 中不存在的键时将空值处理为结果,然后返回空值。另一方面,如果是 Dictionary,如果尝试访问给定 Dictionary 中不存在的键。
5数据顺序HashTable 不维护插入键值数据的任何顺序。另一方面,Dictionary 维护存储值的插入顺序。

相关文章