正如文档所述,该实现与HashMap的不同之处在于它维护了一个双向链接列表来运行其所有条目。
这样做的好处是可以预测迭代顺序,但缺点是增加了内存使用量和可能更高的插入成本-没有免费的午餐,额外的结构(链接列表)使用了一些内存,并需要额外的CPU成本才能维护。
有的。 LinkedHashMap
不同于 HashMap
的地方在于元素的顺序被保留。
因此为了维护顺序,LinkedHashMap
需要维护一个链表的开销。而 HashMap
则没有这样的额外开销,导致比 LinkedHashMap
性能更好。
请注意,LinkedHashMap
实现了普通的哈希表,但其键被存储为一个双向链表,从而获得了额外的优势。