似乎Vector
Scala收集派对迟到了,所有有影响力的博客帖子已经离开了.
在Java中ArrayList
是默认的集合 - 我可能会使用,LinkedList
但只有当我通过算法并且足够小心地进行优化时才会使用.在Scala中,我应该使用Vector
我的默认设置Seq
,还是尝试在List
实际上更合适时使用?
有一个关于Scala集合类的性能特征的方便页面.是否有关于内存占用的类似数据?
我有一种情况,我担心内存使用,并希望在我选择使用的集合中考虑这一点.例如,在Array[Array[T]]
和之间Vector[Vector[T]]
.
VectorBuilder
在同一个源文件中定义Vector
.Vector
是不可变的并且在scala.collections.immutable包中,因此构建器位于同一个包中.
据我所知,如果未明确键入返回类型,则CanBuildFrom
使用a VectorBuilder
作为默认值.
Seq
?在Scala中,您可以通过指定类型来声明变量,如下所示:(方法1)
var x : String = "Hello World"
Run Code Online (Sandbox Code Playgroud)
或者你可以让Scala自动检测变量类型(方法2)
var x = "Hello World"
Run Code Online (Sandbox Code Playgroud)
为什么要使用方法1?它有性能优势吗?
一旦声明了变量,在方法1或方法2声明的所有情况下,它的行为是否完全相同?