是否存在Java7的Hashmap实现优于Java8实现的情况

Uri*_*ren 9 java performance hashmap

从Java8开始,我们心爱的人HashMap表现得有点不同.如果密钥实现了类似的接口,则每个散列将包含平衡树而不是链接列表.

这减少了从碰撞的情况下,最坏的时间复杂度O(n)O(log(n)),看到JEP180

是否存在从Java7升级到Java8会导致性能下降的情况HashMap

dve*_*eim 2

Java8将在桶中的条目数> N中使用平衡树,其中N是根据经验选择的,如果该数字< K,则再次使用列表。如果桶中的条目数以这种方式变化,我预计性能会更差“treefyng / untreeifying”经常发生。由于特定的哈希函数,可能会发生这种情况。

另外,我不确定创建和查询树的开销是否值得小 N 的利润。