1. 程式人生 > >C# 哈希表(Hashtable)用法筆記

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

timestamp remove 空間 方法 generic alt dsi 項目 bool

技術分享

一、什麽是Hashtable?

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

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

二、Hashtable 的屬性

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

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、某些數據會被高頻率查詢

2、數據量很大

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

4、數據類型不唯一

五、HashTable簡單用法實例

class Program

{

static void Main(string[] args)

{

// 創建一個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();

}

}

公眾號:原文

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