HashTable 和Dictionary的区别

黑马程序员--鄢振东

首先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="+myDictionary);
}
Or
foreach(KeyValuePair<string, double> temp in myDictionary)//返回的是KeyValuePair<string, double>泛型数组
  {
       temp.Key;
       temp.Value;
  }

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

posted @ 2014-07-10 23:44  经历  阅读(1338)  评论(0编辑  收藏  举报