首页 > 代码库 > HashTable初次体验
HashTable初次体验
用惯了数组、ArryList,初次接触到HashTable、Dictionary这种字典储存对于我来说简直就是高大上。
1.到底什么是HashTable
HashTable就是哈希表,和数组一样,是一种数据储存的方式,但是相对于数组,HashTable属于乱序储存,不会按照输入的顺序进行储存。详情可以参阅MSDN关于HashTable的叙述。
对于HashTable和常用数组的区别,可以在园子里边搜索。
在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。
Hashtable中keyvalue键值对均为object类型,所以Hashtable可以支持任何类型的keyvalue键值对.
2.HashTable怎么用?
在哈希表中添加一个keyvalue键值对:HashtableObject.Add(key,value);
在哈希表中去除某个keyvalue键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素:HashtableObject.Clear();
判断哈希表是否包含特定键key:HashtableObject.Contains(key);
1 //使用前需要先new一个hashtable2 HashTable hashtable=new HashTable();3 //添加一个元素(key+value)4 hashtable.Add("国家","省份");5 hashtable。Add("省","市");6 //移除一个元素7 hashtabl.Remove("省");8 //清空9 hashtable.Clear();
3.举个栗子
输入一句或一段英文,计算出每个字符出现的次数。(利用hashtable)
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Collections; 6 7 namespace hashtable 8 { 9 class Program10 {11 static void Main(string[] args)12 {13 //新建一个hashtable14 Hashtable ht = new Hashtable(); 15 Console.WriteLine("Input:");16 //获取输入的字符串17 string str=Console.ReadLine();18 int temp = str.Length;//临时储存输入字符串的长度19 char[] sToc=new char[temp];20 //将输入的字符串转存为字符数组21 sToc = str.ToCharArray();22 int j = 0; 23 for (int i = 0; i < temp;i++ )24 {25 int x = 0;//用于记录每个字符出现的次数 26 char c = sToc[i];27 for (int y = i; y < temp; y++)28 {29 if (c == sToc[y])30 x++;31 }32 //判定hashtable中是否已经包含该键值?Y:next,N:将该键值储存到hashtable中33 if (!ht.ContainsKey(c))34 {35 ht.Add(c, x);36 } 37 }38 //遍历所有键值,输出39 foreach (char strr in ht.Keys)40 {41 Console.WriteLine(strr+":"+ht[strr]);42 }43 Console.ReadKey();44 }45 }46 }
代码写的有点匆忙,没有进行过多测试,如有不足,还请各位指正。
测试截图:
HashTable初次体验
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。