LinkedHashMap的缺点是什么?

3

相比HashMap,使用LinkedHashMap有什么缺点吗?大多数文章似乎只讨论了LinkedHashMap的优点(例如这篇或者API文档),但我找不到任何HashMap更好的理由。


可能是Java中HashMap、LinkedHashMap和SortedMap的区别的重复问题。 - donfuxx
缺点基本上在链接的问题中列出 - 性能。 - nawfal
2个回答

9

正如文档所述,该实现与HashMap的不同之处在于它维护了一个双向链接列表来运行其所有条目。 这样做的好处是可以预测迭代顺序,但缺点是增加了内存使用量和可能更高的插入成本-没有免费的午餐,额外的结构(链接列表)使用了一些内存,并需要额外的CPU成本才能维护。


0

有的。 LinkedHashMap 不同于 HashMap 的地方在于元素的顺序被保留。

因此为了维护顺序,LinkedHashMap 需要维护一个链表的开销。而 HashMap 则没有这样的额外开销,导致比 LinkedHashMap 性能更好。

请注意,LinkedHashMap 实现了普通的哈希表,但其键被存储为一个双向链表,从而获得了额外的优势。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接