使用 Hashtable 集合

來源:互聯網
上載者:User
 

一、Hashtable概述
Hashtable集合中的元素以Key/Value方式存在。Key用來快速尋找;Value用於儲存對應於Key的值。值得注意的是Key和Value均為object類型。

二、對Hashtable操作
對Hashtable操作包括:

1)添加集合元素
2)檢索集合元素
3)遍曆
4)排序集合元素
5)修改集合元素
6)刪除集合元素

以下簡單的控制台程式實現上述操作(C#)

namespace hashtableOp
{
using System;
using System.Collections;

class sample
{

static void Main(string[] args)
{

// 建立Hashtable集合
Hashtable ht =new Hashtable();

// 向集合中添加 key/value 對
ht.Add("1", "apple");
ht.Add("2", "orange");
ht.Add("3","strawberry");
ht.Add("0","fruit");

// 通過 key 找到 value
Console.WriteLine("通過 key 找到 value");
string v=(string)ht["1"];
Console.WriteLine(v);

// 遍曆集合
Console.WriteLine("/n遍曆集合");
foreach( DictionaryEntry de in ht)
Console.WriteLine("Key=/"{0}/"/tValue=/"{1}/"",de.Key.ToString(), de.Value.ToString());

// 對集合進行排序
Console.WriteLine("/n對集合進行排序");
ArrayList aKeys=new ArrayList(ht.Keys);
aKeys.Sort();
foreach(string key in aKeys)
Console.WriteLine("Key=/"{0}/"/tValue=/"{1}/"",key, ht[key].ToString());

// 修改指定 key 的 value
ht["0"]="Animal";
ht["1"]="Monkey";
ht["2"]="Horse";
ht["3"]="Donkey";
Console.WriteLine("/n遍曆修改後集合");
foreach( DictionaryEntry de in ht)
Console.WriteLine("Key=/"{0}/"/tValue=/"{1}/"",de.Key.ToString(), de.Value.ToString());

// 刪除集合元素
ht.Remove("2");
ht.Remove("1");
Console.WriteLine("/n遍曆刪除元素後集合");
foreach( DictionaryEntry de in ht)
Console.WriteLine("Key=/"{0}/"/tValue=/"{1}/"",de.Key.ToString(), de.Value.ToString());

// 刪除所以集合元素
ht.Clear();
}
}
}

一、集合基本概念

在程式中,常用集合(Collection)來組織那些數量不定而且不需要明確表達前驅後繼關係的元素(Element)。可以一個比喻來描述集合:集合類似一個袋子(Bag),這個袋子用來裝物品(集合元素),裝入袋子的物品是沒有次序的。按正規術語所描述的集合的核心意思與前面那個比喻所表達意思是一樣的。集合是一個容器(Container)對象,用來儲存集合元素(Element)。此外集合還提供存取、檢索、遍曆集合元素的各種方法。

一般來說,集合所提供的對集合元素的操作有以下幾個:

1)Add 向集合容器中添加一個元素;
2)Remove 從集合容器中刪除一個元素;
3)Clear 將集合容器中的元素清空;
4)從集合容器中檢索特定集合元素。可以根據集合元素的鍵(key)或者集合元素的下標號(確切地說是Index)檢索集合元素;
5)遍曆集合元素。遍曆就是快速地檢視集合容器中所有集合元素。

二、 HashTable

HashTable是一個集合容器,這個容器中的集合元素有點特別,一個集合元素由兩個對象構成:一個對象是key;另一個對象是Value,構成所謂的 Key/Value 對。按MSDN的定義,HashTable中的元素類型是 DictionaryEntry 類型。DictionaryEntry 是一個具有 Key/Value 對的物件類型。

Key 用來快速尋找(檢索)HashTable 集合元素;而Value 用來存放使用者的資料。

一,雜湊表(Hashtable)簡述

在.NET work中,Hashtable是System.Collections命名空間提供的一個容器,用於處理和表現類似key/的索引值對,其中key通常可用來快速尋找,同時key是區分大小寫;用於儲存對應於key的值。Hashtable中key/索引值對均為object類型,所以Hashtable可以支援任何類型的key/索引值對.

二,雜湊表的簡單操作

在雜湊表中添加一個key/索引值對:HashtableObject.Add(key,);
在雜湊表中去除某個key/索引值對:HashtableObject.Remove(key);
從雜湊表中移除所有元素: HashtableObject.Clear();
判斷雜湊表是否包含特定鍵key: HashtableObject.Contains(key);
下面控制台程式將包含以上所有操作:
using System;
using System.Collections; //使用Hashtable時,必須引入這個命名空間
class hashtable
{
public static void Main()
{
Hashtable ht=new Hashtable(); //建立一個Hashtable執行個體
ht.Add("E","e");//添加key/索引值對
ht.Add("A","a");
ht.Add("C","c");
ht.Add("B","b");

string s=(string)ht["A"];
if(ht.Contains("E")) //判斷雜湊表是否包含特定鍵,其傳回值為true或false
Console.WriteLine("the E key:exist");
ht.Remove("C");//移除一個key/索引值對
Console.WriteLine(ht["A"]);//此處輸出a
ht.Clear();//移除所有元素
Console.WriteLine(ht["A"]); //此處將不會有任何輸出
}
}

三,遍曆雜湊表

遍曆雜湊表需要用到DictionaryEntry Object,代碼如下:
for(DictionaryEntry de in ht) //ht為一個Hashtable執行個體
{
Console.WriteLine(de.Key);//de.Key對應於key/索引值對key
Console.WriteLine(de.);//de.Key對應於key/索引值對
}

四,對雜湊表進行排序

對雜湊表進行排序在這裡的定義是對key/索引值對中的key按一定規則重新排列,但是實際上這個定義是不能實現的,因為我們無法直接在Hashtable進行對key進行重新排列,如果需要Hashtable提供某種規則的輸出,可以採用一種變通的做法:
ArrayList akeys=new ArrayList(ht.Keys); //別忘了匯入System.Collections
akeys.Sort(); //按字母順序進行排序
for(string skey in akeys)
{
Console.Write(skey ":");
Console.WriteLine(ht[skey]);//排序後輸出
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.