<分区>
在使用 java 7 提供的 HashMap 时,我遇到了 get() 从 O(1) 演化到 O(n) 的问题,如所述 here并在 Java 8 中解决。
但是因为我必须坚持使用 Java 7 并且无法升级项目,所以我正在寻找一个库或任何方式来拥有一个具有快速且恒定的 get() 的 map 。
<分区>
在使用 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/