Uri*_*ren 9 java performance hashmap
从Java8开始,我们心爱的人HashMap表现得有点不同.如果密钥实现了类似的接口,则每个散列将包含平衡树而不是链接列表.
HashMap
这减少了从碰撞的情况下,最坏的时间复杂度O(n)来O(log(n)),看到JEP180
O(n)
O(log(n))
是否存在从Java7升级到Java8会导致性能下降的情况HashMap?
dve*_*eim 2
Java8将在桶中的条目数> N中使用平衡树,其中N是根据经验选择的,如果该数字< K,则再次使用列表。如果桶中的条目数以这种方式变化,我预计性能会更差“treefyng / untreeifying”经常发生。由于特定的哈希函数,可能会发生这种情况。
另外,我不确定创建和查询树的开销是否值得小 N 的利润。
归档时间:
9 年 前
查看次数:
158 次
最近记录: