Вы не можете преобразовать элементы списка - если вы используете функцию, которая преобразует элементы, создается новый список:
scala> val xs = List(1,2,3)
xs: List[Int] = List(1, 2, 3)
scala> xs.map(_+1)
res0: List[Int] = List(2, 3, 4)
scala> xs
res1: List[Int] = List(1, 2, 3)
Напротив, элементы массива изменчивы:
scala> val xs = Array(1,2,3)
xs: Array[Int] = Array(1, 2, 3)
scala> xs(0) = 5
scala> xs
res3: Array[Int] = Array(5, 2, 3)
scala> val xs = List(1,2,3)
xs: List[Int] = List(1, 2, 3)
scala> xs(0) = 5
<console>:9: error: value update is not a member of List[Int]
xs(0) = 5
^
Тем не менее вы не можете изменить размер массива.Если вы хотите сделать это, вы должны использовать scala.collection.mutable.Buffer
:
scala> val xs = Array(1,2,3)
xs: Array[Int] = Array(1, 2, 3)
scala> xs += 4
<console>:9: error: reassignment to val
xs += 4
^
scala> val xs = collection.mutable.Buffer(1,2,3)
xs: scala.collection.mutable.Buffer[Int] = ArrayBuffer(1, 2, 3)
scala> xs += 4
res6: xs.type = ArrayBuffer(1, 2, 3, 4)