LinkedHashMap
实现 LRU 缓存看起来很棒。它在链表管理方面有一些开销并且不是线程安全的,但是它简化了实现,我可以在我的代码中处理这些。
我有一个问题,到目前为止我还没有找到答案,如果实现了 removeEldestEntry 并且 put 发现列表已满,LinkedHashMap 从列表中删除了多少元素。
它是否只删除一个元素?或总大小的某个百分比。我担心的是,如果它只删除一个元素来放置新元素,那么它就是一个真正的性能问题。正如我所见,重新哈希操作非常昂贵。
请有人建议它是如何工作的,如果我可以使用 InitialCapacity、LoadFactor 或任何其他方式管理这些要删除的元素计数。