Hashtable和dictionary的區別

2021-06-22 18:21:24 字數 1073 閱讀 9657

1:單執行緒程式中推薦使用 dictionary, 有泛型優勢, 且讀取速度較快, 容量利用更充分.

2:多執行緒程式中推薦使用 hashtable, 預設的 hashtable 允許單執行緒寫入, 多執行緒讀取, 對 hashtable 進一步呼叫 synchronized() 方法可以獲得完全執行緒安全的型別. 而 dictionary 非執行緒安全, 必須人為使用 lock 語句進行保護, 效率大減.

3:dictionary 有按插入順序排列資料的特性 (注: 但當呼叫 remove() 刪除過節點後順序被打亂), 因此在需要體現順序的情境中使用 dictionary 能獲得一定方便.

dictionarydic = new dictionary();

dic.add(1, "切爾西");

dic.add(2, "巴薩");

dic.add(3, "曼聯");

foreach (keyvaluepairkvp in dic)            //dictionary的遍歷

,value:" + "

" + "

" + "

", kvp.key.tostring(), kvp.value.tostring());}

hashtable ht = new hashtable();

ht.add(1, "昕哥");

ht.add(2, "macsed");

ht.add(3, "jim老師");

ht.add(4, "a哥");

ht.add(5, "播個");

foreach (dictionaryentry item in ht)    //hashtable的遍歷

,value:", item.key.tostring(), item.value.tostring());

}arraylist alv = new arraylist(ht.values);

alv.sort();

for (int i = 0; i < alv.count; i++)

hashtable中的key和value都是object型別,而dictionary中需要指定型別



Hashtable和Dictionary效能比較

在.net1.1裡經常會使用到hashtable,到裡.net 2.0以後我發現有了乙個很好用的idictionary實現類dictionary。但還是會擔心dictionary的檢索效率是否跟hashtable相當,據我了解arraylist的檢索效率是非常差的,binarysearch也不如ha...

Dictionary和Hashtable的異同

dictionarydic new dictionary dic.add 1,5 dic.add 10,3 dic.add 2,5 foreach int key in dic.keys hashtable hashtable new hashtable hashtable.add 1,5 hash...

ArrayList和Hashtable的有關內容

arraylist的內容 陣列列表的特點 可變長度,用法和陣列類似 屬性 count 得到集合中的實際存放資料的個數 arrylist 動態陣列 方法 add 向陣列中新增乙個元素 remove 刪除陣列中的某一元素 removeat 刪除陣列中索引值為i的元素 revese 反轉陣列的元素 sor...