Reputation: 13
How can I convert an ArrayBuffer
of Maps(String,String)
to an Array
of Maps(String, String)
in Scala using toArray()
?
ArrayBuffer(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y"))
to
Array(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y"))
Upvotes: 0
Views: 4999
Reputation: 2594
If you want Scala's immutable Array and immutable Map then
import scala.collection.mutable.ArrayBuffer
ArrayBuffer(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y")).toArray
Upvotes: 1
Reputation: 31192
ArrayBuffer
is mutable data sturcture. you can call .toArray
to convert it to immutable Array
scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
scala> ArrayBuffer(Map("x1" -> "x", "y1" -> "y"), Map("x2" -> "x", "y2" -> "y"))
res1: scala.collection.mutable.ArrayBuffer[scala.collection.immutable.Map[String,String]] = ArrayBuffer(Map(x1 -> x, y1 -> y), Map(x2 -> x, y2 -> y))
now call .toArray
,
scala> res1.toArray
res2: Array[scala.collection.immutable.Map[String,String]] = Array(Map(x1 -> x, y1 -> y), Map(x2 -> x, y2 -> y))
See the definition for toArray
which returns Array[B]
,
scala> res1.toArray
def toArray[B >: scala.collection.immutable.Map[String,String]](implicit evidence$1: scala.reflect.ClassTag[B]): Array[B]
Upvotes: 3