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+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告