(10)C# 基礎—— Hashtable(哈希表)

.NET C# Web開發學習之路(十)—— Hashtable(哈希表)

Hashtable概述

Hashtable通常稱爲哈希表,用於表示鍵/值對的集合,這些鍵/值對根據鍵的哈希代碼進行組織,其沒個元素都是一個存儲於DictionaryEntry對象中的鍵/值對。鍵不能爲空引用,但值可以。

Hashtable的構造函數有多種,這裏介紹兩種最常用的。

1、使用默認的初始容量、默認加載因子、默認哈希代碼提供程序和默認比較器來初始化Hashtable類的新的空實例。

    public Hashtable()

2、使用指定的初始容量、默認加載因子、默認哈希代碼提供程序和默認比較器來初始化Hashtable類的新的空實例。

    public Hashtable(int capacity)//capacity指Hashtable對象最初可包含的元素的近似數目。

Hashtable常用屬性及說明

屬性 說明
Count 獲取包含在Hashtable中的鍵/值對的數目
IsFixedSize 獲取一個值,該值指示Hashtable是否具有固定大小
IsReadOnly 獲取一個值,該值指示Hashtable知否爲只讀
IsSynchronized 獲取一個值,該值指示是否同步對Hashtable的訪問
Item 設置或獲取與指定的鍵相關聯的值
Keys 獲取包含Hashtable中的鍵的ICollection
SyncRoot 獲取可用於同步Hashtable訪問的對象
Values 獲取包含Hashtable中的值的ICollection

添加Hashtable元素

Add方法:向Hashtable中添加元素

    public virtual void Add(Object key,Object value)

說明:

  • key:要添加的元素的鍵
  • value:要添加的元素的值,可以爲空引用

刪除Hashtable元素

1、Clear方法:從Hashtable中移除所有元素

    public virtual void Clear()

例:

    static void Main(string[] args)
    {
        Hashtable hashtable =  new Hashtable();
        hashtable.Add("id","BH0001");
        hashtable.Add("name","TM");
        hashtable.Add("sex","Man");
        hashtable.Clear();
        Consol.WriteLine(hashtable.Count);
    }

程序運行結果爲
0

2、Remove方法:從Hashtable中移除帶有指定鍵的元素

    public virtual void Remove(Object key)
    //其中key是要移除的元素的鍵

例:

    static void Main(string[] args)
    {
        Hashtable hashtable =  new Hashtable();
        hashtable.Add("id","BH0001");
        hashtable.Add("name","TM");
        hashtable.Add("sex","Man");
        hashtable.Remove("sex");
        Consol.WriteLine(hashtable.Count);
    }

程序運行結果爲:
2

遍歷Hashtable元素

Hashtable的遍歷與數組的遍歷類似,都可以使用foreach語句。但是,Hashtable中的元素是一個鍵/值對,因此需要使用DictionaryEntry類型來進行遍歷。DictionaryEntry表示一個鍵/值對的集合。

例:

        static void Main(string[] args)
        {
            Hashtable hashtable =  new Hashtable();
            hashtable.Add("id","BH0001");
            hashtable.Add("name","TM");
            hashtable.Add("sex","Man");
            Console.WriteLine("\t 鍵 \t 值");
            foreach(DictionaryEntry dicEntry in hashtable)
            {
                Console.WriteLine("\t"+dicEntry.Key+"\t"+dicEntry.Value);
            }
        }

程序運行結果爲:
鍵 值
name TM
sex Man
id BH0001

查找Hashtable元素

1、Contains方法:用來確定Hashtable中是否包含特定鍵

    public virtual bool Contains(Object key)

說明:

  • key:要在Hashtable中定位的鍵
  • 返回值:如果Hashtable中含有指定鍵的元素,返回True,否則返回False

2、ContainsValue方法:確定Hashtable中是否包含特定值

    public virtual bool ContainsValue(Object value)

說明:

  • value:要在Hashtable中定位的值,可以爲空引用
  • 返回值:如果Hashtable中含有指定值的元素,返回True,否則返回False
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章