如何解决Java中数据结构的内部实现?
| 是否有资料来源可以找到Java中各种数据结构的详细实现信息(HashMap,TreeSet等)。 例如:用于不同类型的哈希函数是什么?是开放式寻址还是其他?类似的东西。 PS:我知道我可以遍历源代码。但是,我将离开另一天:)解决方法
由于Java是开源的,因此实现本身就是最好的选择。
如果您使用的是Eclipse并已配置了源代码,则只需按ctrl +左键单击所需的数据结构声明即可。 tt将为此开源。
API文档未提供实现细节。
,从Javadoc开始,然后根据需要继续使用源代码!
,我不知道您的详细程度是多少?
我可以告诉你什么对我来说足够。我总是从NetBeans获得它。我可以按住CTRL键单击任何类名,然后转到代码。这样,您就可以将文档和代码摆在面前,并且可以看到它们的实现方式以及它们在文档中所描述的内容。
希望能帮助到你。
编辑:
HashMap中的第247行(在HashSet中创建然后在其中使用)描述了一个哈希函数,也许这就是您想要的?
/**
* Applies a supplemental hash function to a given hashCode,which
* defends against poor quality hash functions. This is critical
* because HashMap uses power-of-two length hash tables,that
* otherwise encounter collisions for hashCodes that do not differ
* in lower bits. Note: Null keys always map to hash 0,thus index 0.
*/
static int hash(int h) {
// This function ensures that hashCodes that differ only by
// constant multiples at each bit position have a bounded
// number of collisions (approximately 8 at default load factor).
h ^= (h >>> 20) ^ (h >>> 12);
return h ^ (h >>> 7) ^ (h >>> 4);
}
,您可以使用有关集合的文档:
http://download.oracle.com/javase/tutorial/collections/index.html
,否。API文档定义了集合类的外部行为,但没有定义实现细节,这些细节可能是特定于供应商的。如果您想了解如何在特定的VM中实现这些类,则别无选择,只能检查源代码。
至少AFAIK没有Java API的实现,而有关此类特定细节的其他文档可用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。