Daftar dalam Scala tidak dirancang untuk dimodifikasi. Bahkan, Anda tidak bisa menambahkan elemen ke Scala List
; itu adalah struktur data yang tidak berubah , seperti Java String. Apa yang sebenarnya Anda lakukan ketika "menambahkan elemen ke daftar" di Scala adalah membuat Daftar baru dari Daftar yang ada . (Sumber)
Alih-alih menggunakan daftar untuk kasus penggunaan seperti itu, saya sarankan untuk menggunakan ArrayBuffer
atauListBuffer
. Struktur data tersebut dirancang untuk menambahkan elemen baru.
Akhirnya, setelah semua operasi Anda selesai, buffer kemudian dapat dikonversi menjadi daftar. Lihat contoh REPL berikut:
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
dikonversi menjadiListBuffer
, elemen ditambahkan, danListBuffer
kembali dikonversi (sepertiString
danStringBuilder
di Jawa), tapi itu hanya dugaan.