哈希表代表壹組鍵/值對。在。NET框架中,Hashtable是系統提供的壹個容器。Collections命名空間,用於處理和表示類似於key-value的key-value對,其中key通常用於快速查找並區分大小寫;Value用於存儲與key對應的值。Hashtable中的鍵-值鍵-值對是object類型的null,因此Hashtable可以支持任何類型的鍵-值鍵-值對,任何非null對象都可以用作鍵或值。
向哈希表添加壹個鍵/鍵值對:HashtableObject。添加(鍵,);
從哈希表中刪除壹個鍵/鍵值對。移除(鍵);
從哈希表中移除所有元素。clear();
判斷哈希表是否包含特定key: hashtable對象。包含(鍵);
2.哈希特
HashSet & ltT & gt類主要用於進行高性能的集合運算,如尋找兩個集合的交集、並集和差集。集合包含壹組不重復且沒有特征順序的元素。HashSet拒絕接受重復的對象。
HashSet & ltT & gt的壹些功能如下:
a.HashSet & ltT & gt中的值不能重復且沒有順序。
b.HashSet & ltT & gt的容量會根據需要自動添加。
3.詞典
字典表示鍵和值的集合。
詞典& ltstring,string & gt這是仿制藥。
它本身具有集合的功能,有時也可以看作是壹個數組。
他的結構如下:字典
其特點是需要存儲的對象與【key】的值壹壹對應。
通過某個【鍵】找到相應的值
4.4之間的區別。哈希表和字典:
(1).HashTable不支持泛型,而Dictionary支持。
(2)的元素。Hashtable屬於對象類型,因此在存儲或檢索值類型時通常會進行裝箱和解包操作,因此可能需要進行壹些類型轉換操作,對於int int、float等值類型也需要進行裝箱和其他操作,這非常耗時。
(3)單線程程序推薦使用Dictionary,它具有泛型優勢,讀取速度更快,容量利用更充分。建議在多線程程序中使用哈希表。默認哈希表允許單線程寫入和多線程讀取。進壹步調用Hashtable上的Synchronized()方法可以獲得完全線程安全的類型。字典不是線程安全的,因此必須人為地使用lock語句來保護它,這大大降低了效率。
(4)在通過代碼測試時,發現key is integer字典的效率比Hashtable快。如果鍵是字符串,字典的效率不如哈希表快。