C# 哈希表(Hashtable)用法筆記

一、什么是Hashtable?

Hashtable 類代表了一系列基于鍵的哈希代碼組織起來的鍵/值對。它使用鍵來訪問集合中的元素。

當您使用鍵訪問元素時,則使用哈希表,而且您可以識別一個有用的鍵值。哈希表中的每一項都有一個鍵/值對。鍵用于訪問集合中的項目

二、Hashtable 的屬性

1、Count 獲取 Hashtable 中包含的鍵值對個數(shù)。

2、IsFixedSize?? 獲取一個值,表示 Hashtable 是否具有固定大小。

3、IsReadOnly??? 獲取一個值,表示 Hashtable 是否只讀。

4、Item? 獲取或設置與指定的鍵相關的值。

5、Keys? 獲取一個 ICollection,包含 Hashtable 中的鍵。

6、Values??? 獲取一個 ICollection,包含 Hashtable 中的值。

三、Hashtable 的方法

在C#中使用需要引用

using System.Collections;

using System.Collections.Generic;

這兩個命名空間

1、? public virtual void Add( object key, object value );

用途: 向 Hashtable 添加一個帶有指定的鍵和值的元素。

2、public virtual void Clear();

用途:從 Hashtable 中移除所有的元素。

3、public virtual bool ContainsKey( object key );

用途:判斷 Hashtable 是否包含指定的鍵。

4、public virtual bool ContainsValue( object value );

用途:判斷 Hashtable 是否包含指定的值。

5、public virtual void Remove( object key );

用途:從 Hashtable 中移除帶有指定的鍵的元素。

四、HashTable的應用場景

1、某些數(shù)據(jù)會被高頻率查詢

2、數(shù)據(jù)量很大

3、查詢字段包含字符串類型

4、數(shù)據(jù)類型不唯一

五、HashTable簡單用法實例

class Program

{

static void Main(string[] args)

{

// 創(chuàng)建一個Hashtable實例

Hashtable ht=new Hashtable();

// 添加keyvalue鍵值對

ht.Add("A","1");

ht.Add("B","2");

ht.Add("C","3");

ht.Add("D","4");

// 遍歷哈希表只能用foreach來遍歷,因為Hashtable不能用索引訪問

//遍歷key

foreach(Object item in ht.Keys)

{

Console.WriteLine((string)item);

}

//遍歷value

foreach(Object item in ht.Value)

{

Console.WriteLine((string)item);

}

foreach (DictionaryEntry de in ht)

{

Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

}

// 哈希表排序

ArrayList akeys=new ArrayList(ht.Keys);

akeys.Sort();

foreach (string skey in akeys)

{

Console.WriteLine("{0, -15} {1, -15}", skey, ht[skey]);

}

// 判斷哈希表是否包含特定鍵,其返回值為true或false

if (ht.Contains("A"))

Console.WriteLine(ht["A"]);

// 給對應的鍵賦值

ht["A"] ="你好";

// 移除一個keyvalue鍵值對

ht.Remove("C");

// 遍歷哈希表

foreach (DictionaryEntry de in ht)

{

Console.WriteLine("Key -- {0}; Value --{1}.", de.Key, de.Value);

}

// 移除所有元素

ht.Clear();

// 此處將不會有任何輸出

Console.WriteLine(ht["A"]);

Console.ReadKey();

}

}

公眾號:原文

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容