Kedengarannya seperti pertanyaan bodoh, tetapi yang saya temukan di internet hanyalah sampah. Saya tidak bisa menambahkan elemen tipe T
ke dalam daftar List[T]
. Saya mencoba myList ::= myElement
tetapi tampaknya itu menciptakan objek aneh dan mengakses untuk myList.last
selalu mengembalikan elemen pertama yang dimasukkan ke dalam daftar.
223
List
dikonversi menjadiListBuffer
, elemen ditambahkan, danListBuffer
kembali dikonversi (sepertiString
danStringBuilder
di Jawa), tapi itu hanya dugaan.Itu karena Anda seharusnya tidak melakukannya (setidaknya dengan daftar yang tidak berubah). Jika Anda benar-benar perlu menambahkan elemen pada akhir struktur data dan struktur data ini benar-benar harus menjadi daftar dan daftar ini benar-benar harus tidak berubah kemudian lakukan hal berikut:
atau itu:
sumber
:+
, tidak efisien karena mungkin, hanya membangun kembali daftar sekali.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:
sumber
Ini mirip dengan salah satu jawaban tetapi dengan cara yang berbeda:
sumber
Kami dapat menambahkan atau menambahkan dua daftar atau daftar & larik
Menambahkan:
Berlanjut:
sumber