Hashtable基礎學習

iDotNetSpace發表於2009-04-08
今天要用Hashtable,趕緊從網上找到一篇不錯的文章來惡補一下:

     一、雜湊表(hashtable)簡述
     
.net framework中,hashtablesystem.collections名稱空間提供的一個容器,用於處理和表現類似key/value的鍵值對,其中key通常可用來快速查詢,同時key區分大小寫value用於儲存對應於key的值。hashtablekey/value鍵值對均為object型別,所以hashtable可以支援任何型別的key/value鍵值對.

    
二、雜湊表的簡單操作 
     
在雜湊表中新增一個key/value鍵值對:hashtableobject.add(key,value);
     
在雜湊表中去除某個key/value鍵值對: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/value鍵值對 
      ht.add("a","a");
      ht.add("c","c");
      ht.add("b","b");
      string s=(string)ht["a"]; //object型轉換為string
      if(ht.contains("e"))  //判斷雜湊表是否包含特定鍵,其返回值為truefalse 
      console.writeline("the e key:exist");
      ht.remove("c"); //移除一個key/value鍵值對
 
      console.writeline(ht["a"]);//此處輸出
      ht.clear();//移除所有元素
      console.writeline(ht["a"]); //此處將不會有任何輸出 

     }
    }

    三,遍歷雜湊表
     遍歷雜湊表需要用到dictionaryentry object,程式碼如下:
     foreach(dictionaryentry de in ht) //ht為一個hashtable例項 
   {
    console.writeline(de.key); //de.key對應於key/value鍵值對key 
    console.writeline(de.value); //de.key對應於key/value鍵值對value 
   }

    四,對雜湊表進行排序
     對雜湊表進行排序在這裡的定義是對key/value鍵值對中的key按一定規則重新排列,是實際上這個定義是不能實現的,因為我們無法直接在hashtable進行對key進行重新排列,如果需要   hashtable提供某種規則的輸出,可以採用一種變通的做法:
     arraylist akeys=new arraylist(ht.keys); //用動態陣列存放Hashtable中的所有鍵值

     akeys.sort(); //按字母順序進行排序
 
     foreach(string skey in akeys)
   {
     console.write(skey + ":");
     console.writeline(ht[skey]); //排序後輸出 
   }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-571191/,如需轉載,請註明出處,否則將追究法律責任。