LinkedHashMap的缺点?

时间:2014-03-23 16:42:16

标签: java data-structures hashmap linkedhashmap

使用LinkedHashMap而不是HashMap有什么缺点吗?大多数帖子似乎都在讨论LinkedHashMaps的优势(例如this oneAPI),但我找不到HashMaps更好的原因。

2 个答案:

答案 0 :(得分:9)

正如文档所说,This implementation differs from HashMap in that it maintains a doubly-linked list running through all of its entries.。这样做的好处是允许可预测的迭代顺序,但缺点是内存使用量增加,插入成本可能更高 - 没有任何东西可以免费使用,附加结构(链表)使用一些内存,需要额外的CPU成本才能维护。 / p>

答案 1 :(得分:0)

是的。 LinkedHashMapHashMap的不同之处在于维护了元素的顺序。

因此,为了维护秩序,LinkedHashMap需要维护链表的费用。而HashMap没有这样的开销导致比LinkedHashMap更好的性能。

请注意LinkedHashMap实现了一个普通的哈希表,但哈希表的键的附加好处是存储为双向链表。