在使用java 7提供的HashMap时,我遇到了问题,即get()从O(1)演变为O(n),如here所述,并在java 8中解决。
但是因为我必须坚持使用java 7并且无法升级项目,所以我正在寻找一个库或任何方式来获得具有快速和常量get()的Map。
答案 0 :(得分:7)
Java 8中的变化的本质:
从您的链接Performance Improvement for HashMap in Java 8
包含大量碰撞键的存储桶会在达到特定阈值后将其条目存储在平衡树中而不是链接列表中。
您可以通过改进hashCode
实施来减少冲突密钥的数量,从而达到相当的效果。
如果没有hashCode
计算的详细信息或值的模式,则很难进一步提出建议。