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的实现,而有关此类特定细节的其他文档可用。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...