3 回答

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個贊
System.Collections.Generic.Dictionary<TKey, TValue>和System.Collections.Hashtable類都在內(nèi)部維護(hù)哈希表數(shù)據(jù)結(jié)構(gòu)。它們都不能保證保留項(xiàng)目的順序。
除了裝箱/拆箱問題外,大多數(shù)情況下,它們應(yīng)該具有非常相似的性能。
它們之間的主要結(jié)構(gòu)差異是Dictionary依靠鏈接(為每個哈希表存儲桶維護(hù)一個項(xiàng)目列表)來解決沖突,而Hashtable使用重新哈希化來解決沖突(當(dāng)發(fā)生沖突時,嘗試使用另一個哈希函數(shù)將鍵映射到存儲桶) 。
Hashtable如果您針對.NET Framework 2.0+ ,則使用類幾乎沒有好處。有效地使它過時了Dictionary<TKey, TValue>。

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊
哈希表和字典之間的區(qū)別
字典:
如果我們嘗試找到不存在的鍵,則字典返回錯誤。
字典比哈希表更快,因?yàn)闆]有裝箱和拆箱。
字典是一種通用類型,這意味著我們可以將其與任何數(shù)據(jù)類型一起使用。
哈希表:
如果我們嘗試查找不存在的鍵,則Hashtable返回null。
哈希表比字典慢,因?yàn)樗枰b箱和拆箱。
哈希表不是通用類型,
- 3 回答
- 0 關(guān)注
- 272 瀏覽
添加回答
舉報