有人可以解釋字典和哈希表之間的區別嗎?在Java中,我讀過字典是散列表的超集,但我一直認爲它是相反的方式。其他語言似乎將這兩者視爲相同。什麼時候應該使用另一個,有什麼區別?字典對哈希表
Q
字典對哈希表
0
A
回答
1
計算defines a dictionary作爲牛津詞典...
代表一組能夠支持元件的插入和刪除,以及用於成員資格的測試元件的任何數據結構。
因此,字典是一個抽象的想法,可以合理有效地實施,例如,二叉樹或散列表,嘗試甚至直接進行數組索引,如果這些鍵是數字而不是太稀疏的話。也就是說,python使用封閉散列哈希表來實現其dict
,而C#似乎也使用某種散列表(因此需要單獨的SortedDictionary
類型)。
一個hash table是一個更具體的和具體的數據結構:有幾種實現方式的選擇(closed與open散列的也許就是最根本的),但他們都特點是O(1)攤銷插入,查詢和刪除,並且開始 - >結束迭代沒有任何理由比O(n + #buckets)差,而實現可能會更好(例如,GCC的C++庫具有O(n)容器迭代),實現必須依賴於導致陣列中的索引探針。
1
我看到它的方式,散列表是一種實現字典的方法。指定鍵是散列函數(x),並且該值是任何對象。只要已經爲該對象實現.equals(y),Java Dictionary就可以使用任何鍵。
'答案'也會根據您使用的語言(C#?Java?JS?)而改變。在JS中,'字典'是作爲散列表實現的,沒有區別。 ----在另一種語言(我相信它是C#)中,Dictionary必須是強類型的固定類型鍵和固定類型值,而Hashtable的值可以是任何類型,並且兩者不會相互擴展。
相關問題
- 1. Bash擴展哈希表(字典)
- 2. 將哈希表更改爲字典
- 3. 排序字典哈希
- 4. IronRuby哈希C#字典
- 5. 哈希映射,哈希集合,哈希字典之間有什麼區別?
- 6. SQL哈希表字
- 7. 將redis哈希轉換爲python字典?
- 8. 哈希表vs哈希列表與哈希樹?
- 9. 對象的哈希值如何存儲在字典中?
- 10. Python哈希函數和哈希對象
- 11. 字典實現(平衡二進制搜索樹與哈希表)
- 12. 如何將Python字典轉換爲JavaScript哈希表?
- 13. 帶整數鍵的哈希表(字典等)
- 14. 超高性能C/C++哈希映射(表,字典)
- 15. 與哈希表/字典參數Powershell的C#Cmdlet的
- 16. MS-Access 2007中的字典和哈希表
- 17. 拼寫檢查器的BST或哈希表字典
- 18. 如何實現哈希表字典的構造函數Java
- 19. 如何在MATLAB中使用哈希表(字典)?
- 20. 字典和哈希表之間的真正區別是什麼?
- 21. 哈希表中的搜索哈希
- 22. 哈希打印表哈希perl
- 23. 字符串中的Perl哈希對值
- 24. 帶格式列表的哈希錶轉換回哈希表powershell
- 25. 哈希表實現
- 26. 哈希表vs Dictonary
- 27. 地圖哈希表
- 28. 哈希表或BST?
- 29. 獲得哈希表
- 30. 靜態哈希表