【发布时间】:2012-07-26 12:19:10
【问题描述】:
LinkedHashMap 看起来很适合实现 LRU 缓存。它在链表管理方面有一些开销并且不是线程安全的,但是它简化了实现,我可以在我的代码中处理这些。
我的问题是,如果实现 removeEldestEntry 并且 put 发现列表已满,LinkedHashMap 会从列表中删除多少元素。
它是否只删除一个元素?或总大小的某个百分比。我担心的是,如果它只删除一个元素来放置新元素,那么它就是一个真正的性能问题。正如我所见,重新哈希操作的成本非常高。
请有人建议它是如何工作的,如果我可以使用 InitialCapacity、LoadFactor 或任何其他方式管理这些要删除的元素计数。
【问题讨论】:
标签: java linkedhashmap