gpt4 book ai didi

Java的hashSet处理具有相同哈希码的多个项目

转载 作者:行者123 更新时间:2023-12-02 11:16:53 25 4
gpt4 key购买 nike

我在任何地方都找不到这个问题的答案。我将 100,000 个具有相同哈希码的不同字符串添加到 java 中的 HashSet 中,花费了 63 毫秒。(链接列表花费了 37373 毫秒)

我想知道Java的hashSet如何处理这种情况。

(这是练习的一部分,我的实现花费了更长的时间 - 两个“开放”实现 - 将字符串添加到链接列表中,以及“关闭”实现 - 我找到下一个带有给定公式)。

最佳答案

在 OpenJDK HashMaps 和 HashSets 中,如果按哈希存储桶中有太多项目,则回退到 TreeMap/TreeSet:

http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/HashMap.java#l145

也不要与 LinkedList 进行比较,而是与 ArrayList 进行比较 - LinkedList 速度较慢并且几乎从未使用/有用。

关于Java的hashSet处理具有相同哈希码的多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50204214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com