首页 > 代码库 > HashTable 和Dictionary的区别

HashTable 和Dictionary的区别

黑马程序员--鄢振东

---------------------- ASP.Net+Unity3D游戏开发、.Net培训、期待与您交流! ----------------------
首先hashtable和Dictionary这2个都是属于字典类,就是键值对集合。
 
相同点:我们都可以对其进行添加键值对  用add() 函数。和addrange()函数。
    还有移除move moverange moveat
        还有通过 键 去找  值。
不同点:对于值类型,特定类型(不包括 Object)的 Dictionary的性能优于 Hashtable,这是因为 Hashtable 的元素属于 Object 类型,所以在存储或检索值类型时通常发生装箱和取消装箱操作。

Dictionary类与 Hashtable 类的功能相同

HashTable ht=new HashTable();//实现 IDictionary接口
ht.Add(1,"A");
ht.Add(2,"B");
ht.Add(3,"c");
foreach(DictionaryEntry de in ht)//HashTable返回的是DictionaryEntry类型
 {
    de.Key;
    de.Value;
 }

Dictionary<int,string> myDictionary=new Dictionary<int,string>();//实现IDictionary接口,IDictionary<T key,T value>类
myDictionary.Add(1,"a");
myDictionary.Add(2,"b");
myDictionary.Add(3,"c");
foreach(int i in myDictionary.Keys)
{
  Console.WriteLine("Key="+i+"Value="http://www.mamicode.com/+myDictionary);
}
Or
foreach(KeyValuePair<string, double> temp in myDictionary)//返回的是KeyValuePair<string, double>泛型数组
  {
       temp.Key;
       temp.Value;
  }

2者都是通过循环来便利  来通过键得到值的。