Scala'daki listeler değiştirilmek üzere tasarlanmamıştır. Aslında, bir Scala'ya eleman ekleyemezsiniz List
; bir var değişmez veri yapısı bir Java dize gibi. Scala'da "bir listeye öğe eklediğinizde" yaptığınız şey , varolan bir Listeden yeni bir Liste oluşturmaktır . (Kaynak)
Bu tür kullanım durumları için listeler kullanmak yerine, ArrayBuffer
ya a ya da a kullanmanızı öneririm ListBuffer
. Bu veri yapıları yeni unsurlar eklenecek şekilde tasarlanmıştır.
Son olarak, tüm işlemleriniz tamamlandıktan sonra, arabellek bir listeye dönüştürülebilir. Aşağıdaki REPL örneğine bakın:
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
bir dönüştürülürListBuffer
, öğe eklenir veListBuffer
geri dönüştürülür (hemen hemen benzerString
veStringBuilder
Java'da), ama bu sadece bir tahmin.