java - 为 Java 7 使用快速且恒定的 get() 进行映射

标签 java dictionary hashmap java-8 java-7

<分区>

在使用 java 7 提供的 HashMap 时,我遇到了 get() 从 O(1) 演化到 O(n) 的问题,如所述 here并在 Java 8 中解决。

但是因为我必须坚持使用 Java 7 并且无法升级项目,所以我正在寻找一个库或任何方式来拥有一个具有快速且恒定的 get() 的 map 。

最佳答案

Java 8 变化的实质:

来自您的链接 Performance Improvement for HashMap in Java 8

Buckets containing a large number of colliding keys will store their entries in a balanced tree instead of a linked list after certain threshold is reached.

您可以通过改进hashCode 实现来减少冲突键 的数量,从而达到同样的效果。

如果没有您的 hashCode 计算或值模式的详细信息,则很难提供进一步的建议。

关于java - 为 Java 7 使用快速且恒定的 get() 进行映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649713/

相关文章:

java - 将 HashMap 值传递给 url

c# - 关于接口(interface)

java - jersey 内部如何处理 @pathparam 注入(inject)?

c++ - map 和 unordered_map 包含指向 double 的指针?

python - 向 lambda 函数添​​加额外的逻辑以从 python 字典中获取最小值

字典的 Python 列表理解示例

java - 存储字符串缓冲区

java - 重试时跳过 observable

java - 如何通过 JNI 创建 HashMap<String, String> 然后解析为 java

java - Intellij idea Hashmaps打印到控制台