2017-10-07 104 views
-4

據我所知哈希表使用有鍵來存儲任何項目,而字典使用簡單的鍵值對來存儲item.it意味着字典是比哈希錶快很多(我認爲。請更正我如果我錯了)。 這是否意味着我不應該使用散列表。哈希表vs Dictonary

+2

*「..這意味着字典比散列表快得多。」* - 在這個行業中,我們沒有得出經驗證據就不會得出「X比Y快」的結論......您的位置在哪裏? – WhiZTiM

+0

因爲要搜索哈希表中的項目,它首先計算哈希鍵,然後找到所需的項目,在字典中我們可以通過輸入密鑰簡單地獲取該值。請糾正我,如果我錯了 – user7190448

+0

@ user7190448作爲一個例子你的陳述是有問題的,考慮.NET'Dictionary '。它被實現爲一個哈希表。你如何看待大多數字典「簡單地獲得價值」? ;) – jdphenix

回答

1

答案是「這取決於」。

字典只是一種將鍵映射到值的方法。您可以使用庫或自己實現一個庫。

哈希表是一種實現字典的特定方式,其中密鑰基於散列函數。該功能通常基於模運算。這意味着兩個不同的值可能以散列鍵結束,因此鍵之間會發生衝突。然後由您(或實施散列表的人)決定如何解決衝突。你可以在相同的密鑰上鍊接值,重新哈希並使用子哈希表,或者你甚至可能希望重新開始一個新的哈希函數(這會很昂貴)。

根據字典的底層實現(散列表)會影響您的查找性能。