国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

輕松學習C#的哈希表

2020-01-24 01:22:06
字體:
來源:轉載
供稿:網友

      在C#語言中,還有一種用于快速搜索而組織的鍵/值組合的數組,這種數組叫做關聯數組,也叫做哈希表(Hashtable)。
       哈希表也在System.Collection命名空間下,用于處理和表現類似key/value的鍵值對,其中key通常用來快速查找,同時key是區分大小寫,且key必須是唯一的。它沒有有效的排序,所進行的是內在的排序,value用于存儲對應于key的值。哈希表中key/value鍵值對均為object類型,所以哈希表可以支持任何類型的key/value鍵值對。哈希表的每個元素是一個存儲在DictionaryEntry對象中的鍵值對鍵值對(所謂的DictionaryEntry結構,就是定義可設置或檢索的字典鍵值對,有一個key屬性,一個value屬性,分別代表鍵和值)。
       哈希表最大的優點就是把數據的存儲和查找消耗的時間大大降低,幾乎可以看成常數時間,而代價僅僅是消耗較多的內存。然而在當前可利用內存越來越多的情況下,用空間換時間的做法是值得的。另外,編碼比較容易也是它的特點之一。
一、Hashtable元素的添加
        Hashtable提供了一個添加元素的key/value鍵值對Add方法,該方法有兩個參數,一個是鍵,功能相當于數組中的索引,幫助查找,另一個是值,可以把它看做數組中的元素,其格式為:Hashtable對象.Add(鍵,值)
        例一、利用上述的方法進行Hashtable對象的元素的添加

<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace 哈希表 {  class Program  {   static void Main(string[] args)   {    Hashtable al = new Hashtable();    Console.WriteLine("添加前al的元素個數為:"+al.Count);    al.Add("1", "a");    al.Add("2", "b");    al.Add("3", "c");    Console.WriteLine("添加后al的元素個數為:"+al.Count);    Console.ReadLine();   }  } }</span> 

輸出的結果為:添加前al的元素個數為:0
                       添加后al的元素個數為:3
二、Hashtable元素的刪除
Hashtable對象的元素的刪除可通過Remove方法,Clear方法來進行。
        (1).Clear方法將清除所有的元素,其格式為:Hashtable對象.Clear()
        (2).Remove方法接受一個key參數,作用是移除一個key/value鍵值對,其格式為:Hashtable對象.Remove()
例二、利用上述方法進行Hashtable元素的刪除

<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace 哈希表 {  class Program  {   static void Main(string[] args)   {    Hashtable al = new Hashtable();    Console.WriteLine("添加前al的元素個數為:"+al.Count);    al.Add("1", "a");    al.Add("2", "b");    al.Add("3", "c");    Console.WriteLine("添加后al的元素個數為:"+al.Count);    al.Remove("3");    Console.WriteLine("刪除3后al的元素個數為:"+al.Count);    Console.ReadLine();   }  } }</span> 

輸出的結果為:添加前al的元素個數為:0
                       添加后al的元素個數為:3
                       刪除C后al的元素個數為:2
三、Hashtable元素的遍歷
         遍歷哈希表需要用到DictionaryEntry(字典鍵/值對)Object。
例三、利用foreach語句對哈希表進行遍歷

<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace 哈希表 {  class Program  {   static void Main(string[] args)   {    Hashtable al = new Hashtable();    Console.WriteLine("添加前al的元素個數為:"+al.Count);    al.Add("1", "a");    al.Add("2", "b");    al.Add("3", "c");    Console.WriteLine("添加后al的元素個數為:"+al.Count);    foreach (DictionaryEntry t in al)    {     Console.Write("鍵位:"+t.Key+" 值為:");     Console.WriteLine(t.Value);    }    Console.ReadLine();   }  } }</span> 

輸出的結果為:添加前al的元素個數為:0
                       添加后al的元素個數為:3
                       鍵位:1 值為:a
                       鍵位:2 值為:b
                       鍵位:3 值為:c
四、Hashtable元素的查找
       Hashtable集合提供三個查找方法查找Hashtable中的元素,這三個方法為Contains方法,ContainsKe和方法和ContainsValue方法。
       Contains方法,ContainsKey方法是根據Hashtable的key值去查找,如果找到,返回匹配的最后一項的自0開始的索引,否則返回-1,其格式為:
       Hashtable對象.Contains(key值)或 Hashtable對象.ContainsKey(key值)
       ContainValue方法是根據Hashtable的value值去查找,如果找到,返回匹配的最后一項自0開始的索引,否則,返回-1,其格式為:Hashtable對象.ContainsValue(Value值) 
例四、利用上述的方法進行Hashtable元素的查找

<span style="font-size:18px;">using System; using System.Collections;//需要添加的命名空間 using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;  namespace 哈希表 {  class Program  {   static void Main(string[] args)   {    Hashtable al = new Hashtable();    Console.WriteLine("添加前al的元素個數為:"+al.Count);    al.Add("1", "a");    al.Add("2", "b");    al.Add("3", "c");    Console.WriteLine("添加后al的元素個數為:"+al.Count);    if (al.Contains("1"))    {     Console.WriteLine("1存在al中");    }    if (al.ContainsKey("2"))    {     Console.WriteLine("2存在al中");    }    if (al.ContainsValue("c"))    {     Console.WriteLine("c存在al中");    }    Console.ReadLine();   }  } }</span> 

輸出的結果為:添加前al的元素個數為:0
                       添加后al的元素個數為:3
                       1存在al中
                       2存在al中
                       c存在al中

以上就是關于C#的哈希表相關介紹,希望對大家的學習有所幫助

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江永县| 沙坪坝区| 类乌齐县| 繁昌县| 江都市| 久治县| 周至县| 比如县| 通海县| 柳林县| 华蓥市| 华坪县| 大洼县| 六盘水市| 武乡县| 河津市| 武平县| 佛教| 武定县| 灵山县| 抚州市| 连山| 宣威市| 海丰县| 榆林市| 营口市| 喜德县| 石河子市| 邛崃市| 河津市| 宁城县| 军事| 拉萨市| 德兴市| 石楼县| 岳池县| 太白县| 扬中市| 江陵县| 屯门区| 海林市|