【发布时间】:2014-05-20 13:49:19
【问题描述】:
读Algorithms的书,需要掌握hashtable的概念。他们写了关于使用单独链接的散列和使用线性探测的散列。我猜 Java 的 HashMap 是一个哈希表,所以我想知道 HashMap 使用什么机制(链接或探测)?
我需要用 get、put、remove 实现最简单的 HashMap。你能指点我阅读的好材料吗?
当 Map 使用的唯一键是自定义对象时,我们需要在对应类型内部实现 hashCode() 函数。我做对了吗?或者什么时候需要 hashCode()?
很遗憾,这本书并没有回答所有问题,尽管我知道对你们中的许多人来说这些问题都是低级的。
【问题讨论】:
-
从技术上讲,Java 有一个内置的
hashCode()方法,但对于大多数用途,您在#3 中的评估是正确的。 -
顺便说一句;您是否知道 Netbeans 在其中提供了 HashMap 的源代码(与编译后的字节码相反),因此您可以在其中四处寻找(可能也可以在 Internet 上找到,但在 IDE 中导航代码要好得多)
-
是的,我可以访问 java.util.HashMap 代码,但我需要一个玩具示例,例如解释 15 岁的 Stack 或 Deque。