HashTable有哪些異同?
1:?jiǎn)尉€程程序中推薦使用 Dictionary, 有泛型優(yōu)勢(shì), 且讀取速度較快, 容量利用更充分.
2:多線程程序中推薦使用 HashTable, 默認(rèn)的 Hashtable 允許單線程寫入, 多線程讀取, 對(duì) Hashtable 進(jìn)一步調(diào)用 Synchronized() 方法可以獲得完全線程安全的類型. 而 Dictionary 非線程安全, 必須人為使用 lock 語(yǔ)句進(jìn)行保護(hù), 效率大減.
3:Dictionary 有按插入順序排列數(shù)據(jù)的特性 (注: 但當(dāng)調(diào)用 Remove() 刪除過(guò)節(jié)點(diǎn)后順序被打亂), 因此在需要體現(xiàn)順序的情境中使用 Dictionary 能獲得一定方便.
4:對(duì)于值類型,特定類型(不包括 Object)的 Dictionary<(Of <(TKey, TValue>)>) 的性能優(yōu)于 Hashtable,這是因?yàn)?Hashtable 的元素屬于 Object 類型,所以在存儲(chǔ)或檢索值類型時(shí)通常發(fā)生裝箱和取消裝箱操作。