有人可以解釋字典和哈希表之間的區別嗎?在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. JavaScript的哈希表/字典
- 2. 哈希表,以字典
- 3. Powershell字典或哈希表的列表
- 4. 淨字典哈希對象類型鍵
- 5. Bash擴展哈希表(字典)
- 6. c#字典作爲哈希表的值
- 7. 將哈希表更改爲字典
- 8. 排序字典哈希
- 9. IronRuby哈希C#字典
- 10. 經典哈希點符號哈希
- 11. 比較與Python字典的關鍵對象/哈希表
- 12. 哈希映射,哈希集合,哈希字典之間有什麼區別?
- 13. SQL哈希表字
- 14. 哈希[string.split(...)]對哈希[* string.split(...)]
- 15. 將redis哈希轉換爲python字典?
- 16. 哈希表vs哈希列表與哈希樹?
- 17. 對象的哈希值如何存儲在字典中?
- 18. 對比哈希
- 19. Python哈希函數和哈希對象
- 20. 與哈希表/字典參數Powershell的C#Cmdlet的
- 21. 字典和哈希表之間的真正區別是什麼?
- 22. 字典實現(平衡二進制搜索樹與哈希表)
- 23. 帶整數鍵的哈希表(字典等)
- 24. Python字典搜索複雜Java相比,HashMap中/哈希表
- 25. 哪一個更可取:字典或哈希表
- 26. 如何在MATLAB中使用哈希表(字典)?
- 27. 創建字典(哈希表)維持秩序
- 28. 檢測老調重彈或哈希表或字典衝突
- 29. 如何將Python字典轉換爲JavaScript哈希表?
- 30. 拼寫檢查器的BST或哈希表字典