Scala 2.11 LinkedList已弃用,我应该使用什么?

Dav*_*ank 15 collections scala linked-list

根据文档,scala.collection.mutable.LinkedList从2.11版本开始被弃用.不幸的是,我没有找到任何替代它.我需要一个有序的集合,可以在恒定的时间内从任何索引中删除一个项目.

我该怎么用?

suz*_*omo 5

使用MutableList及其迭代器的remove方法.它们提供O(1)去除.

http://docs.scala-lang.org/overviews/collections/concrete-mutable-collection-classes.html#linked_lists

  • 抱歉,但MutableList的迭代器没有`remove`方法.这就是为什么http://stackoverflow.com/questions/2803085/iterators-for-mutable-collections-in-scala (2认同)

Mac*_*ski 5

根据我对您的问题的理解,您希望遍历集合并动态更改它。除了(现已弃用)scala.collection.mutable.LinkedListscala.collection.mutable.DoubleLinkedList. 这种操作并没有真正遵循Scala集合理念因此LinkedListDoubleLinkedList现在已被弃用。

然而,没有什么能阻止您java.util.LinkedList在 Scala 代码中使用经典的 Java和相关迭代器。

除非您想查看您的设计和使用结构,如遵循Scala的方式:mapfilterforfoldreduce,等。例如,使用filter功能,您可以创建一个只相关项目一个新的列表。