C#中HashTable和Dictionary的区别


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

根据这些数据结构关键特征的区别,我们可以区分HashTable和Dictionary如下:

序号关键点HashTableDictionary
1定义HashTable是非泛型集合类型,用于以键值对存储数据,定义在**System.Collections**命名空间中。另一方面,Dictionary是定义在**System.Collection.Generics**命名空间下的泛型集合类型,也以键值对的形式存储数据。
2数据类型在HashTable中,可以将相同或不同数据类型的数据存储为键和值,没有限制要求键和值必须是相同的数据类型才能存储在HashTable中。也不需要指定键和值的类型。另一方面,在Dictionary中,键和值必须是相同的数据类型才能存储在字典中,并且必须在创建时指定键和值的类型。
3数据检索在HashTable中,由于装箱和拆箱,数据检索速度比Dictionary慢。另一方面,在Dictionary中,数据检索速度更快,因为Dictionary中不会发生装箱和拆箱。
4空值在HashTable中,空值处理方式为:访问给定HashTable中不存在的键时,返回空值作为结果。另一方面,如果尝试访问给定Dictionary中不存在的键,Dictionary会报错。
5数据顺序HashTable不维护插入的键值数据的任何顺序。另一方面,Dictionary维护存储值的插入顺序。

更新于:2020年6月9日

6K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告