如何将Scala数组转换为ArrayBuffer?

时间:2018-02-04 19:59:30

标签: scala

我看到Scala数组可以使用s.toList或s.toSeq轻松转换为List,Seq等。现在,我想将数组转换为bufferarray。我该怎么做?

4 个答案:

答案 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)

_*表示unpackIterable元素。所以arr: _*arr的元素解压缩到一个可变长度列表中 - 这是一个可接受的`ArrayBuffer参数列表。

答案 2 :(得分:3)

请尝试Array(1, 2, 3).toBuffer

答案 3 :(得分:1)

对于任何正在寻找答案的人,已接受的答案已被弃用。如果您尝试执行它,那么它将成功执行,但会给您警告消息。因此,您可以参考克莱尔·侯的答案,也可以使用

Array('a','b','c').toIndexedSequence