Списки Scala не можуть бути змінені. Насправді ви не можете додати елементи до Scala List; це незмінна структура даних , як Java String. Те, що ви насправді робите, коли ви "додаєте елемент до списку" в 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перетворюється на aListBuffer, додається елемент іListBufferповертається назад (майже якStringіStringBuilderв Java), але це лише здогадка.