Scala有一个可变的和一个不可变的Map, 但它只有一个不可变的List。 如果你想要一个可变列表,你需要一个ListBuffer。
我不明白为什么会这样。 有谁知道?。
答案 0 :(得分:18)
您可以选择:
scala.collection.mutable.DoubleLinkedList
scala.collection.mutable.LinkedList
scala.collection.mutable.ListBuffer
scala.collection.mutable.MutableList
所以,是的,Scala有可变列表: - )
答案 1 :(得分:6)
我希望这篇文章对你有用。页面底部的图表在提供可变和不可变类时特别有用。
http://www.scala-lang.org/docu/files/collections-api/collections_1.html
答案 2 :(得分:3)
有一个可变的List
,但它被称为Buffer
。格雷厄姆关联的文章更深入,但我认为这个问题应该有一个具体的答案。
答案 3 :(得分:0)
Map
是trait
- 与Java interface
一样 - 而List
是class
,是Seq
的具体实现}。有可变且不可变的Seq
,就像Map
一样。
这可能让Java程序员感到困惑,因为在Java中,List
是interface
,其(主要)实现是ArrayList
和LinkedList
。唉,Java命名是残暴的。首先,ArrayList
在任何想象中都不是List
。此外,该接口的方法与任何传统列表都不相关。
因此,如果您想要可变/不可变等价,请查看Seq
的具体子类实现。