Kotlin Academy · Pelajaran

filter, map, dan find pada Koleksi

Terapkan lambda untuk mengubah dan menyaring koleksi menggunakan fungsi pustaka standar.

Pelajaran 4 dari 413 langkah

filter, map, dan find pada Koleksi adalah pelajaran Kotlin Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 Andalan

filter mempertahankan elemen yang sesuai dengan predikat. map mentransformasikan setiap elemen. find mengembalikan elemen pertama yang sesuai (atau null). Ketiganya mencakup sebagian besar pemrosesan koleksi.

Dasar-Dasar filter

filter mengembalikan daftar baru yang hanya berisi elemen dengan predikat bernilai true.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5, 6)
    val evens = nums.filter { it % 2 == 0 }
    println(evens) // [2, 4, 6]
}

Dasar-Dasar map

map mengembalikan daftar baru dengan ukuran yang sama, dengan setiap elemennya ditransformasikan oleh lambda.

fun main() {
    val nums = listOf(1, 2, 3)
    val squares = nums.map { it * it }
    println(squares) // [1, 4, 9]
}

Dasar-Dasar find

find mengembalikan elemen pertama yang sesuai dengan predikat, atau null jika tidak ada yang sesuai.

fun main() {
    val words = listOf("apple", "banana", "cherry")
    val match = words.find { it.startsWith("b") }
    println(match) // banana
}

Merangkai filter dan map

Gabungkan keduanya dengan sintaks titik untuk membangun alur data yang ekspresif.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5)
    val result = nums.filter { it % 2 == 1 }.map { it * 10 }
    println(result) // [10, 30, 50]
}

Menyaring Kelas Data

filter dan map sangat berguna dengan koleksi yang berisi instans kelas data.

data class User(val name: String, val age: Int)
fun main() {
    val users = listOf(User("Ana", 17), User("Ben", 25), User("Cal", 31))
    val adultNames = users.filter { it.age >= 18 }.map { it.name }
    println(adultNames) // [Ben, Cal]
}

find vs first

find mengembalikan nilai yang dapat bernilai null; first { ... } akan melemparkan pengecualian jika tidak ada yang sesuai. Gunakan find untuk pencocokan opsional.

fun main() {
    val nums = listOf(1, 2, 3)
    println(nums.find { it > 10 })  // null
    // nums.first { it > 10 }       // throws NoSuchElementException
    println(nums.firstOrNull { it > 10 }) // null (alias of find)
}

filterNot dan filterNotNull

filterNot membalikkan predikat. filterNotNull menghapus entri null dari daftar yang elemennya dapat bernilai null.

fun main() {
    val nums = listOf(1, 2, 3, 4)
    println(nums.filterNot { it % 2 == 0 }) // [1, 3]
    val maybe: List<String?> = listOf("a", null, "b", null, "c")
    println(maybe.filterNotNull()) // [a, b, c]
}

mapNotNull

mapNotNull mentransformasikan elemen lalu menghapus nilai null, sehingga praktis untuk penguraian.

fun main() {
    val raw = listOf("1", "two", "3", "four")
    val numbers = raw.mapNotNull { it.toIntOrNull() }
    println(numbers) // [1, 3]
}

Alur Data di Dunia Nyata

Contoh kecil yang menggabungkan filter, map, dan reduksi akhir.

data class Product(val name: String, val price: Double, val inStock: Boolean)
fun main() {
    val products = listOf(
        Product("Pen", 1.0, true),
        Product("Book", 12.0, false),
        Product("Lamp", 25.0, true)
    )
    val total = products
        .filter { it.inStock }
        .map { it.price }
        .sum()
    println("Available total: $total") // 26.0
}

Memilih di antara Operasi

Gunakan filter ketika Anda menginginkan subset, map untuk mentransformasikan elemen, find untuk satu pencocokan opsional, dan rangkai semuanya jika diperlukan.

fun main() {
    val words = listOf("alpha", "beta", "gamma", "delta")
    println(words.filter { it.length == 5 })       // [alpha, gamma, delta]
    println(words.map { it.uppercase() })           // [ALPHA, BETA, GAMMA, DELTA]
    println(words.find { it.endsWith("ta") })       // beta
}

Pemeriksaan Singkat

Fungsi mana yang mengembalikan koleksi baru dengan elemen yang ditransformasikan oleh lambda?

Ringkasan

filter memilih, map mentransformasikan, dan find menemukan pencocokan pertama (atau null). Gabungkan semuanya secara bebas dalam alur data; gunakan mapNotNull dan filterNotNull saat menangani nilai opsional.

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
51
Pelajaran
203

Pertanyaan yang Sering Diajukan

Apakah pelajaran “filter, map, dan find pada Koleksi” gratis?

Ya — teks lengkap “filter, map, dan find pada Koleksi” 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 “filter, map, dan find pada Koleksi”?

Terapkan lambda untuk mengubah dan menyaring koleksi menggunakan fungsi pustaka standar. 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 4 dari 4.

Berapa lama pelajaran “filter, map, dan find pada Koleksi” 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. Apa Itu Lambda? Sintaks dan Tipe
  2. Meneruskan Lambda ke Fungsi
  3. it: Parameter Implisit
  4. filter, map, dan find pada Koleksi
← Kembali ke Kotlin Academy