C#中HashTable簡介和使用用法
一、簡介
名詞介紹:雜湊表(Hash table,也叫雜湊表),是根據關鍵碼值(Key value)而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中一個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。
HashTable 表的優點:HashTable是System.Collections名稱空間提供的一個容器,HashTable中的key/value均為object型別,所以HashTable可以支援任何型別的key/value鍵/值對。
HashTable的優點就在於其索引的方式,速度非常快。
二、雜湊表的簡單操作
在雜湊表中新增一個keyvalue鍵值對:HashtableObject.Add(key,value);
在雜湊表中去除某個keyvalue鍵值對:HashtableObject.Remove(key);
從雜湊表中移除所有元素: HashtableObject.Clear();
判斷雜湊表是否包含特定鍵key: HashtableObject.Contains(key);
下面控制檯程式將包含以上所有操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
using System; using System.Collections; //file使用Hashtable時,必須引入這個名稱空間 class hashtable { public static void Main() { Hashtable ht=new Hashtable(); //file建立一個Hashtable例項 ht.Add(E,e); //新增keyvalue鍵值對 ht.Add(A,a); ht.Add(C,c); ht.Add(B,b); string s=(string)ht[A]; if(ht.Contains(E)) //file判斷雜湊表是否包含特定鍵,其返回值為true或false Console.WriteLine(the E keyexist); ht.Remove(C); //移除一個keyvalue鍵值對 Console.WriteLine(ht[A]); //此處輸出a ht.Clear(); //移除所有元素 Console.WriteLine(ht[A]); //file此處將不會有任何輸出 } } |
三、遍歷雜湊表
遍歷雜湊表需要用到DictionaryEntry Object,程式碼如下:
for(DictionaryEntry de in ht) // fileht為一個Hashtable例項 { Console.WriteLine(de.Key); //de.Key對應於keyvalue鍵值對key Console.WriteLine(de.Value); //de.Key對應於keyvalue鍵值對value }
四、對雜湊表進行排序
對雜湊表進行排序在這裡的定義是對keyvalue鍵值對中的key按一定規則重新排列,但是實際上這個定義是不能實現的,因為我們無法直接在Hashtable進行對key進行重新排列,如果需要Hashtable提供某種規則的輸出,可以採用一種變通的做法:
ArrayList akeys=new ArrayList(ht.Keys); // file別忘了匯入System.Collections akeys.Sort(); // file按字母順序進行排序 for(string skey in akeys) { Console.Write(skey + ); Console.WriteLine(ht[skey]); // 排序後輸出 }
文章出自:小風草堂 http://www.cnitman.com/csharp-hashtable-usage-introduce/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-672240/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hashtable簡介和使用
- C#中Hashtable和HashMap的區別C#HashMap
- C#中的char和string的使用簡介C#
- Hbase簡介和基本用法
- ASP.net 中Queue,Stack,Hashtable,Sortlist一些簡單用法ASP.NET
- IOS中 Block簡介與用法iOSBloC
- Shell中Read用法簡介
- C#中?和??及?:的用法C#
- xml schema 中elementFormDefault 的用法簡介XMLORM
- IOS中 Block簡介與用法(一)iOSBloC
- ASP.NET Web Forms – Hashtable 物件簡介ASP.NETWebORM物件
- AWK用法簡介
- hashtable 泛型 C#泛型C#
- c#之hashtable類C#
- c#遍歷HashTableC#
- C# 簡介C#
- RubyGems簡介和使用
- expdp 的用法簡介
- clientTop和clientLeft屬性用法簡單介紹client
- div和span元素的用法簡單介紹
- C# 之 Hashtable 與 DictionaryC#
- PTSQLServer中exists和except用法介紹wkaSQLServer
- 簡單介紹SQLserver中的declare變數用法SQLServer變數
- js迴圈中reduce的用法簡單介紹JS
- CSS中expression使用簡介CSSExpress
- mysqladmin的用法簡介MySql
- Oracle Scheduler(1)用法簡介Oracle
- start with ... connect by用法簡介
- Java入門學習- 理解List和HashMap和HashTable的用法和區別JavaHashMap
- C#集合類(HashTable, Dictionary, ArrayList)與HashTable執行緒安全C#執行緒
- C#中 as is 用法筆記C#筆記
- C#中Enum的用法C#
- fstream中ifstream和ofstream的簡單用法
- PHP中的魔術方法和魔術常量簡介和使用PHP
- 簡單介紹Python中異常處理用法Python
- javascript中的就加號+的用法簡單介紹JavaScript
- offsetWidth和offsetHeight屬性用法簡單介紹
- javascript的clientLeft和clientTop屬性用法簡單介紹JavaScriptclient