【发布时间】:2010-09-21 21:57:19
【问题描述】:
我对哈希表的基本概念感到很困惑。如果我要编写一个哈希,我什至会如何开始?哈希表和普通数组有什么区别?
基本上,如果有人回答了这个问题,我想我的所有问题都会得到回答: 如果我有 100 个随机生成的数字(作为键),我将如何实现哈希表,为什么它比数组更有优势?
伪代码或 Java 将被视为一种学习工具...
【问题讨论】:
-
这仍然是一个集合。您在一组中存储 100 个数字。你在 Set 中查找它们。他们在那里。 HashMap 需要一个键和一个值作为单独的东西;否则它只是一组键。
-
我对哈希表查找密钥的方式以及密钥的生成方式更感兴趣。
-
重点是:没有键和值以及合理的用例,哈希表就没有意义。
-
没有值的哈希表可以很好地实现一个集合。你在哪里需要一个值?找到或未找到密钥。
-
正如 Zan 所说,HashSet 实际上是由内部的 hashtable/hashMap 支持的。