Las listas en Scala no están diseñadas para ser modificadas. De hecho, no puede agregar elementos a una Scala List; Es una estructura de datos inmutable , como una cadena de Java. Lo que realmente hace cuando "agrega un elemento a una lista" en Scala es crear una nueva Lista a partir de una Lista existente . (Fuente)
En lugar de usar listas para tales casos de uso, sugiero usar una ArrayBuffero una ListBuffer. Esas estructuras de datos están diseñadas para tener nuevos elementos agregados.
Finalmente, después de realizar todas sus operaciones, el búfer se puede convertir en una lista. Vea el siguiente ejemplo REPL:
scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer
scala> var fruits = new ListBuffer[String]()
fruits: scala.collection.mutable.ListBuffer[String] = ListBuffer()
scala> fruits += "Apple"
res0: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple)
scala> fruits += "Banana"
res1: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana)
scala> fruits += "Orange"
res2: scala.collection.mutable.ListBuffer[String] = ListBuffer(Apple, Banana, Orange)
scala> val fruitsList = fruits.toList
fruitsList: List[String] = List(Apple, Banana, Orange)
Listse convierte en aListBuffer, se agrega el elemento y seListBuffervuelve a convertir (más o menos comoStringyStringBuilderen Java), pero eso es solo una suposición.