List, Vector, Set, Map
Koleksi inti.
List, Vector, Set, Map adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.
Koleksi inti Scala
Scala menyediakan beberapa koleksi tak dapat diubah di pustaka standarnya. Empat koleksi yang paling sering Anda gunakan adalah List, Vector, Set, dan Map. Masing-masing memiliki kinerja dan semantik yang berbeda.
object Main {
def main(args: Array[String]): Unit = {
val list = List(1, 2, 3)
val vector = Vector(1, 2, 3)
val set = Set(1, 2, 3)
val map = Map("a" -> 1, "b" -> 2)
println(list)
println(vector)
println(set)
println(map)
}
}List: daftar berantai
List adalah daftar berantai tunggal. Menambahkan elemen di awal dengan :: memiliki kompleksitas O(1) dan cepat, tetapi akses acak dan penambahan di akhir memiliki kompleksitas O(n). Koleksi ini ideal untuk rekursi dan penggunaan seperti tumpukan.
object Main {
def main(args: Array[String]): Unit = {
val xs = List(2, 3, 4)
val prepended = 1 :: xs
println(prepended)
println("head: " + xs.head)
println("tail: " + xs.tail)
}
}Vector: seimbang dan serbaguna
Vector adalah rangkaian berindeks dengan akses, pembaruan, penambahan di awal, dan penambahan di akhir yang secara efektif memiliki kompleksitas O(1). Jika Anda memerlukan akses acak yang cepat atau rangkaian serbaguna, pilih Vector daripada List.
object Main {
def main(args: Array[String]): Unit = {
val v = Vector(10, 20, 30, 40)
println(v(2))
val updated = v.updated(0, 99)
println(updated)
println(v :+ 50)
}
}Set: elemen unik
Set menyimpan elemen yang berbeda, tanpa duplikat dan tanpa urutan yang dijamin. Pengujian keanggotaan dengan contains berlangsung cepat.
object Main {
def main(args: Array[String]): Unit = {
val s = Set(1, 2, 2, 3, 3, 3)
println(s)
println(s.contains(2))
println(s + 4)
println(s - 1)
}
}Operasi Set
Set mendukung operasi matematika: union (|), intersect (&), dan diff (−−).
object Main {
def main(args: Array[String]): Unit = {
val a = Set(1, 2, 3)
val b = Set(2, 3, 4)
println(a union b)
println(a intersect b)
println(a diff b)
}
}Map: pasangan kunci-nilai
Map menghubungkan kunci dengan nilai. Kunci bersifat unik. Buat entri dengan panah ->, lalu cari nilai dengan get (mengembalikan Option) atau apply.
object Main {
def main(args: Array[String]): Unit = {
val ages = Map("Ann" -> 30, "Bob" -> 25)
println(ages("Ann"))
println(ages.get("Cara"))
println(ages.getOrElse("Cara", 0))
}
}Memperbarui Map tanpa mengubahnya
Map tak dapat diubah mengembalikan Map baru ketika Anda menambahkan atau menghapus entri; yang asli tidak berubah. Gunakan + untuk menambahkan atau menimpa, dan - untuk menghapus.
object Main {
def main(args: Array[String]): Unit = {
val m = Map("a" -> 1)
val m2 = m + ("b" -> 2)
val m3 = m2 - "a"
println(m)
println(m2)
println(m3)
}
}Melakukan iterasi pada Map
Melakukan iterasi pada Map memberi Anda tuple kunci-nilai. Anda dapat langsung menguraikannya dalam ekspresi for atau menggunakan pencocokan pola.
object Main {
def main(args: Array[String]): Unit = {
val scores = Map("math" -> 90, "art" -> 75)
for ((subject, score) <- scores) {
println(s"$subject: $score")
}
}
}Metode umum yang dimiliki semuanya
Semua koleksi ini memiliki API umum yang luas: size, isEmpty, map, filter, foreach, dan lainnya. Pelajari API ini sekali, lalu gunakan di mana saja.
object Main {
def main(args: Array[String]): Unit = {
println(List(1, 2, 3).map(_ * 2))
println(Vector(1, 2, 3).map(_ * 2))
println(Set(1, 2, 3).map(_ * 2))
}
}Mengonversi antarkoleksi
Metode konversi seperti toList, toVector, toSet, dan toMap memungkinkan Anda mengganti jenis dengan mudah. Mengonversi ke Set akan menghapus duplikat.
object Main {
def main(args: Array[String]): Unit = {
val withDupes = List(1, 1, 2, 3, 3)
println(withDupes.toSet)
val pairs = List(("a", 1), ("b", 2))
println(pairs.toMap)
}
}Memilih koleksi yang tepat
Panduan singkat:
List— rekursi, penambahan awal yang cepat, pemrosesan kepala/ekorVector— serbaguna, akses berindeks yang cepatSet— keunikan dan pengujian keanggotaanMap— pencarian berdasarkan kunci
object Main {
def main(args: Array[String]): Unit = {
val ids = List(5, 3, 5, 1, 3)
val unique = ids.toSet
val indexed = ids.toVector
println(s"unique count: ${unique.size}")
println(s"third element: ${indexed(2)}")
}
}Pemeriksaan Cepat
Koleksi mana yang secara otomatis menghapus elemen duplikat?
Ringkasan
Anda telah mengenal koleksi inti Scala yang tak dapat diubah:
- List — daftar berantai, penambahan awal yang cepat
- Vector — berindeks, kinerja yang seimbang
- Set — elemen unik dengan aljabar himpunan
- Map — pencarian kunci-nilai dengan
get/getOrElse
Koleksi-koleksi ini memiliki API umum yang kaya dan dapat dikonversi satu sama lain dengan mudah.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “List, Vector, Set, Map” gratis?
Ya — teks lengkap “List, Vector, Set, Map” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “List, Vector, Set, Map”?
Koleksi inti. Kamu berlatih Scala for Backend Engineering & Functional Programming dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Scala for Backend Engineering & Functional Programming?
Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “List, Vector, Set, Map” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Scala for Backend Engineering & Functional Programming ini?
Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- List, Vector, Set, Map
- Transformasi
- Folding dan Reducing
- Pengelompokan dan Pengurutan