If you want to do something like
a (5) = // result of some calculation
then you will need to use something from the hierarchy of mutable collections. I suggest ArrayBuffer .
scala> import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.ArrayBuffer scala> val a = ArrayBuffer.fill(3,3)(0) a: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(0, 0, 0), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 0, 0)) scala> a(2)(1) = 4 scala> a(0) = ArrayBuffer(1,2,3) scala> a res2: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(1, 2, 3), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 4, 0))
Note that fill allows you to automatically create and initialize up to 5D structures. Please also note that you can extend their length, but will not expand the entire multidimensional structure, only the one to which you add. For example,
scala> a(2) += 7
Rex kerr
source share