在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
描述: 哈希表存放 key、values ,key值可以用于快速调取用,values 对应object类型,也就是说所有类型。 实例: 1.HashTable存放学生的成绩 Hashtable ht1 = new Hashtable(); //创建一个Hashtable实例 ht1.Add("张三", "100"); //添加keyvalue键值对 ht1.Add("李四", "100"); ht1.Add("王五", "100"); ht1.Add("赵六", "200"); string capital1 = (string)ht["王五"];//根据Key值获取信息 ht.Remove("赵六"); //移除一个keyvalue键值对 ht.Clear(); //移除所有元素 object value2 = ht["赵六"];//直接根据key取值,判断类型在进行转化 if (value2 is string) { } foreach (DictionaryEntry de in ht) //ht为一个Hashtable实例,遍历哈希表 object对象 { Control cc = (Control)de.Value; } //添加数据时Hashtable快。频繁调用数据时Dictionary快。 2.System.Collections下的哈希表(Hashtable)和System.Collections.Generic下的字典(Dictionary)都可用作lookup table,下面比较一下二者的执行效率。 Stopwatch sw = new Stopwatch(); Hashtable hashtable = new Hashtable(); Dictionary<string, int> dictionary = new Dictionary<string, int>(); int countNum = 1000000; sw.Start(); for (int i = 0; i < countNum; i++) { hashtable.Add(i.ToString(), i); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //输出: 744 sw.Restart(); for (int i = 0; i < countNum; i++) { dictionary.Add(i.ToString(), i); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //输出: 489 sw.Restart(); for (int i = 0; i < countNum; i++) { hashtable.ContainsKey(i.ToString()); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //输出: 245 sw.Restart(); for (int i = 0; i < countNum; i++) { dictionary.ContainsKey(i.ToString()); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //输出: 192 Dictionary<K,V>是泛型的,当K或V是值类型时,其速度远远超过Hashtable。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论