我看到Scala数组可以使用s.toList或s.toSeq轻松转换为List,Seq等。现在,我想将数组转换为bufferarray。我该怎么做?
答案 0 :(得分:13)
可以在任意集合类型之间进行转换的通用方法to
。
Array(1, 2, 3).to[ArrayBuffer]
答案 1 :(得分:11)
使用Iterable: _*
:
val arr = Array(1,2,3)
arr: Array[Int] = Array(1, 2, 3)
val buf = collection.mutable.ArrayBuffer(arr: _*)
buf: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
_*
表示unpack
个Iterable
元素。所以arr: _*
将arr
的元素解压缩到一个可变长度列表中 - 这是一个可接受的`ArrayBuffer参数列表。
答案 2 :(得分:3)
请尝试Array(1, 2, 3).toBuffer
答案 3 :(得分:1)
对于任何正在寻找答案的人,已接受的答案已被弃用。如果您尝试执行它,那么它将成功执行,但会给您警告消息。因此,您可以参考克莱尔·侯的答案,也可以使用
Array('a','b','c').toIndexedSequence