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 ArrayBuffer
o 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)
List
se convierte en aListBuffer
, se agrega el elemento y seListBuffer
vuelve a convertir (más o menos comoString
yStringBuilder
en Java), pero eso es solo una suposición.