自定义LRU实现需要LinkedList。在查看来源时,我们看到:
@deprecated("Low-level linked lists are deprecated
due to idiosyncrasies in interface and incomplete features.", "2.11.0")
class LinkedList[A]() extends AbstractSeq[A]
with LinearSeq[A]
with GenericTraversableTemplate[A, LinkedList]
with LinkedListLike[A, LinkedList[A]]
with Serializable {
那么推荐的替代方案是什么(这里没有提到..)。我们会回到java.util.LinkedList
吗?我猜有更好的选择..
更新 LinkedList的特定特性是能够访问O(1)上的单个条目,以便有效地插入/删除列表中的元素。这将要求在列表中创建新元素时公开并返回LinkedListEntry
(或Node
或类似..)引用。似乎没有一个可用的实现 - 包括java.util.LinkedList
- 是合适的。
答案 0 :(得分:3)
可能LinkedHashMap可能比其他人更合适,但是:
有一个喷雾缓存,这是一个非常好的实现,他们正在使用一种名为ConcurrentLinkedHashMap的东西,它更适合与Scala一起使用,因为它提供了高性能的并发性。