有人可以解释字典和哈希表之间的区别吗?在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或哈希表字典