How to create and use a multi-dimensional array in Scala?

How do I create an array of multiple dimensions?

For example, I want an integer or double matrix, something like double[][] in Java.

I know for a fact that arrays changed in Scala 2.8 and that the old arrays are deprecated, but are there multiple ways to do it now and if yes, which is best?


Solution 1:

Like so:

scala> Array.ofDim[Double](2, 2, 2)
res2: Array[Array[Array[Double]]] = Array(Array(Array(0.0, 0.0), Array(0.0, 0.0)), Array(Array(0.0, 0.0), Array(0.0, 0.0)))

scala> {val (x, y) = (2, 3); Array.tabulate(x, y)( (x, y) => x + y )}
res3: Array[Array[Int]] = Array(Array(0, 1, 2), Array(1, 2, 3))

Solution 2:

It's deprecated. Companion object exports factory methods ofDim:

val cube = Array.ofDim[Float](8, 8, 8)