Hashtable和Dictionary效能比較

2021-05-22 08:18:22 字數 696 閱讀 7804

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

據我了解arraylist的檢索效率是非常差的,binarysearch也不如hashtable.所以做了乙個測試。

輸出為:

int型別,directory:49

int型別,hashtable:254

string型別,directory:1112

string型別,hashtable:511

inttrygetvalue,directory:50

int型別,hashtable:251

*****====

int型別,directory:48

int型別,hashtable:201

string型別,directory:944

string型別,hashtable:505

inttrygetvalue,directory:51

int型別,hashtable:167

從結果我們可以發現如果key是整數型dictionary的效率比hashtable快3到4倍,

如果key是字串型,dictionary的效率只有hashtable的一半。

另外使用trygetvalue對效率沒什麼影響。

Hashtable和dictionary的區別

1 單執行緒程式中推薦使用 dictionary,有泛型優勢,且讀取速度較快,容量利用更充分.2 多執行緒程式中推薦使用 hashtable,預設的 hashtable 允許單執行緒寫入,多執行緒讀取,對 hashtable 進一步呼叫 synchronized 方法可以獲得完全執行緒安全的型別.而...

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...