How to convert a Scala Array to ArrayBuffer?

Use 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)

The _* means to unpack the Iterable elements. So arr: _* unpacks the elements of arr into a variable length list - which is an acceptable parameter list for `ArrayBuffer.


There's a generic method to that can convert between arbitrary collection types.

Array(1, 2, 3).to[ArrayBuffer]

Or from Scala 2.13 onwards:

Array(1, 2, 3).to(ArrayBuffer)

please try Array(1, 2, 3).toBuffer

Tags:

Scala