哈希表代表壹組鍵/值對。在。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.詞典
Dictionary表示鍵和值的集合。
字典& ltstring,string & gt這是仿制藥。
它本身就有集合的功能,有時候也可以看作是壹個數組。
他的結構如下:字典
其特點是需要將待存儲的對象與[key]的值壹壹對應存儲。
通過某個[鍵]找到對應的值
4.4之間的區別。哈希表和字典:
(1).HashTable不支持泛型,而Dictionary支持。
(2)的元素2)。Hashtable屬於對象類型,所以裝箱和解包操作通常發生在存儲或檢索值類型時,所以可能需要做壹些類型轉換操作,對於int int、float等值類型也需要裝箱等操作,非常耗時。
(3)單線程程序推薦字典,字典具有泛型優勢,讀取速度更快,更能充分利用容量。建議在多線程程序中使用Hashtable。默認哈希表允許單線程寫和多線程讀。進壹步調用Hashtable上的Synchronized()方法可以獲得完全線程安全的類型。字典不是線程安全的,必須人為地使用鎖語句來保護,這樣大大降低了效率。
(4)通過代碼測試,發現key是整數字典的效率比Hashtable快。如果鍵是字符串,字典的效率沒有Hashtable快。