Ner*_*vic 5 scala scala-collections
为什么Scala Collections API中的集合和列表之间缺乏一致性?
例如,存在不可变的Set,但也是可变的Set.如果我想使用后者,我可以简单地这样做:
val set = Set[A]()
set += new A
Run Code Online (Sandbox Code Playgroud)
但是,本身没有可变列表.如果我想使用Lists编写类似的代码片段,使用哪种数据结构?LinkedList听起来很好,因为它是可变的,但没有定义+ =方法.ListBuffer似乎满足要求,但它不是一个列表.
阅读2.8 Collections文档后,我得出结论MutableList可能是最合适的.
我仍然希望有scala.collection.mutable.List.
oxb*_*kes 20
这样做的原因是Java已经选择了函数 List类型来表示它不是(即java.util.List不是列表).
函数式编程语言具有可变性 List是没有意义的,因为这种类型是矛盾的.因此ListBuffer或ArrayBuffer.或者只是使用IndexedSeq,其中有可变和不可变的实现
SetScala集合库中的序列/列表类似物是Seq.List仅仅是一个特定的,不可改变的实施Seq,因为是Vector.ArrayBuffer或者ListBuffer是典型的实现mutable.Seq.
| 归档时间: |
|
| 查看次数: |
611 次 |
| 最近记录: |