Scala 2.11+中LinkedList的推荐替代品是什么

时间:2015-10-29 17:48:38

标签: scala

自定义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 - 是合适的。

1 个答案:

答案 0 :(得分:3)

可能LinkedHashMap可能比其他人更合适,但是:

有一个喷雾缓存,这是一个非常好的实现,他们正在使用一种名为ConcurrentLinkedHashMap的东西,它更适合与Scala一起使用,因为它提供了高性能的并发性。