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)