0Pricing
Kotlin Academy · Pelajaran

listOf, setOf, mapOf: Koleksi Hanya-Baca

Buat koleksi tidak dapat diubah dan pahami pola aksesnya.

listOf, setOf, mapOf: Koleksi Hanya-Baca adalah pelajaran Kotlin Academy 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 Kotlin Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Academy mencakup 4 pelajaran total.

Tiga Fungsi Pembentuk

Pustaka standar Kotlin menyediakan listOf, setOf, dan mapOf untuk membentuk koleksi hanya-baca. Hanya-baca berarti Anda tidak dapat menambah atau menghapus elemen melalui antarmuka.

Membuat Daftar

listOf membuat List<T> yang hanya-baca. Tipe elemen disimpulkan dari argumen.

fun main() {
    val fruits = listOf("apple", "banana", "cherry")
    println(fruits)        // [apple, banana, cherry]
    println(fruits.size)   // 3
}

Membuat Himpunan

setOf mengembalikan Set<T> yang hanya-baca. Elemen duplikat otomatis digabungkan.

fun main() {
    val tags = setOf("kotlin", "java", "kotlin", "android")
    println(tags) // [kotlin, java, android]
    println(tags.size) // 3
}

Membuat Peta

mapOf menerima pasangan key to value dan mengembalikan Map<K, V> yang hanya-baca.

fun main() {
    val ages = mapOf("Alice" to 30, "Bob" to 25)
    println(ages["Alice"]) // 30
    println(ages.keys)     // [Alice, Bob]
}

Anotasi Tipe

Jika tipe yang disimpulkan salah (atau daftar kosong), berikan parameter tipe secara eksplisit.

fun main() {
    val empty: List<String> = listOf()
    val numbers: List<Int> = listOf(1, 2, 3)
    val emptyMap: Map<String, Int> = mapOf()
    println("empty=${empty}, n=${numbers}, m=${emptyMap}")
}

Varian Kosong

Gunakan emptyList(), emptySet(), emptyMap() jika Anda memang menginginkan koleksi kosong. Ini lebih baik daripada listOf() dengan parameter tipe ketika maksud kode perlu diperjelas.

fun main() {
    val xs = emptyList<String>()
    val ys = emptySet<Int>()
    val zs = emptyMap<String, Int>()
    println("${xs.size}, ${ys.size}, ${zs.size}") // 0, 0, 0
}

Hanya-Baca Berarti... Hanya-Baca

Antarmuka List tidak memiliki add. Kompilator menolak mutasi.

fun main() {
    val items = listOf(1, 2, 3)
    // items.add(4) // ERROR: List has no add
    val bigger = items + 4 // creates new list
    println(bigger) // [1, 2, 3, 4]
}

Implementasi di Balik Layar

Di balik layar, listOf mengembalikan ArrayList Java yang dibungkus dalam tampilan yang tidak dapat diubah. Sifat hanya-baca merupakan kontrak antarmuka, bukan jaminan saat runtime terhadap refleksi.

fun main() {
    val xs = listOf(1, 2, 3)
    println(xs::class.simpleName) // ArrayList
}

Pasangan dan to

Fungsi infiks to membuat Pair<A, B> — berguna untuk literal peta dan tupel.

fun main() {
    val pair = "key" to 42
    println(pair) // (key, 42)
    val m = mapOf("a" to 1, "b" to 2)
    for ((k, v) in m) println("$k -> $v")
}

Melakukan Iterasi pada Koleksi Hanya-Baca

Koleksi hanya-baca mendukung semua pola iterasi standar: for, forEach, map, filter.

fun main() {
    val nums = setOf(1, 2, 3, 4)
    val doubled = nums.map { it * 2 }
    println(doubled) // [2, 4, 6, 8]
}

Menggabungkan Daftar

Operator + menghasilkan daftar gabungan baru (perilaku hanya-baca tetap dipertahankan).

fun main() {
    val a = listOf(1, 2)
    val b = listOf(3, 4)
    val combined = a + b
    println(combined) // [1, 2, 3, 4]
}

Pemeriksaan Singkat

Apa yang terjadi ketika Anda memanggil add(4) pada daftar yang dibuat dengan listOf(1, 2, 3)?

Ringkasan

listOf, setOf, dan mapOf membuat koleksi hanya-baca. Koleksi tersebut tidak dapat diubah melalui antarmukanya. Gunakan + untuk menghasilkan koleksi baru, serta emptyList()/emptySet()/emptyMap() untuk koleksi kosong bertipe.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “listOf, setOf, mapOf: Koleksi Hanya-Baca” gratis?

Ya — teks lengkap “listOf, setOf, mapOf: Koleksi Hanya-Baca” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “listOf, setOf, mapOf: Koleksi Hanya-Baca”?

Buat koleksi tidak dapat diubah dan pahami pola aksesnya. Kamu berlatih Kotlin Academy 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 Kotlin Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Academy 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 “listOf, setOf, mapOf: Koleksi Hanya-Baca” 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 Kotlin Academy ini?

Ya. Setiap pelajaran Kotlin Academy 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. listOf, setOf, mapOf: Koleksi Hanya-Baca
  2. mutableListOf, mutableMapOf: Pembuat Koleksi Mutable
  3. Mengakses Elemen: get, first, last, getOrNull
  4. Mengiterasi dan Mengubah Koleksi dengan Pustaka Standar
← Kembali ke Kotlin Academy