gpt4 book ai didi

java - LinkedHashMap removeEldestEntry : How many elements are removed?

转载 作者:行者123 更新时间:2023-11-30 05:52:27 24 4
gpt4 key购买 nike

LinkedHashMap 看起来很适合实现 LRU 缓存。它在链表管理和非线程安全方面有一些开销,但它简化了实现,我可以在我的代码中处理这些。

我的问题是,如果实现 removeEldestEntry 并发现列表已满,LinkedHashMap 从列表中删除了多少元素,目前我还没有找到答案。

它只删除一个元素吗?或总大小的某个百分比。我担心的是,如果它只删除一个元素来放置新元素,那么它就是一个真正的性能问题。正如我所见,重新哈希操作的成本非常高。

请有人建议它是如何工作的,如果我可以使用 InitialCapacity、LoadFactor 或任何其他方式管理这些要删除的元素计数。

最佳答案

LinkedHashMap 可以很好地实现最简单 缓存,但对于更高级的要求,它可能并不理想。

removeEldestEntry 返回 true 将导致删除单个最旧的条目,无法将其调整为多个元素。

也许类似于 Guava CacheBuilder might be what you're looking for .

关于java - LinkedHashMap removeEldestEntry : How many elements are removed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11669149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com