Списки в Scala не предназначены для изменения. На самом деле, вы не можете добавлять элементы в Scala List
; это неизменяемая структура данных , похожая на строку Java. Что вы действительно делаете, когда «добавляете элемент в список» в Scala, так это создаете новый список из существующего списка . (Источник)
Вместо того, чтобы использовать списки для таких случаев использования, я предлагаю использовать ArrayBuffer
или ListBuffer
. Эти структуры данных предназначены для добавления новых элементов.
Наконец, после того, как все ваши операции выполнены, буфер может быть преобразован в список. Смотрите следующий пример 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
преобразуется вListBuffer
элемент добавляется, иListBuffer
преобразованный назад (довольно много , какString
иStringBuilder
в Java), но это только предположение.