我在任何地方都找不到这个问题的答案。 我将 100,000 个具有相同哈希码的不同字符串添加到 java 中的 HashSet 中,花费了 63 毫秒。 (链接列表花费了 37373 毫秒)
我想知道Java的hashSet如何处理这种情况。
(这是练习的一部分,我的实现花费了更长的时间 - 两个“开放”实现 - 将字符串添加到链接列表中,以及“关闭”实现 - 我找到下一个带有给定公式)。
最佳答案
在 OpenJDK HashMaps 和 HashSets 中,如果按哈希存储桶中有太多项目,则回退到 TreeMap/TreeSet:
也不要与 LinkedList 进行比较,而是与 ArrayList 进行比较 - LinkedList 速度较慢并且几乎从未使用/有用。
关于Java的hashSet处理具有相同哈希码的多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50204214/