0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

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/ekor
  • Vector — serbaguna, akses berindeks yang cepat
  • Set — keunikan dan pengujian keanggotaan
  • Map — 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

  1. List, Vector, Set, Map
  2. Transformasi
  3. Folding dan Reducing
  4. Pengelompokan dan Pengurutan
← Kembali ke Scala for Backend Engineering & Functional Programming