0Pricing
Kotlin Academy · Pelajaran

Asosiasi dan Perataan

associate dan flatMap

Asosiasi dan Perataan 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.

Mengaitkan dan Meratakan

Dua alat koleksi yang lebih canggih: fungsi keluarga pengaitan membuat peta dari sebuah daftar, sedangkan flatMap / flatten mengubah koleksi bertingkat menjadi satu koleksi datar.

Fungsi associateWith

associateWith menggunakan setiap elemen sebagai kunci dan menghitung nilainya dengan fungsi lambda, sehingga menghasilkan peta.

fun main() {
    val words = listOf("a", "bb", "ccc")
    val lengths = words.associateWith { it.length }
    println(lengths)
}

Fungsi associateBy

associateBy adalah kebalikannya: fungsi ini menghitung kunci dari setiap elemen, dengan mempertahankan elemen tersebut sebagai nilai.

data class User(val id: Int, val name: String)

fun main() {
    val users = listOf(User(1, "Ann"), User(2, "Bob"))
    val byId = users.associateBy { it.id }
    println(byId[2]?.name)
}

Fungsi Pengaitan

associate umum memungkinkan Anda membuat kunci dan nilai sekaligus dengan mengembalikan sebuah Pair untuk setiap elemen.

fun main() {
    val names = listOf("Ann", "Bob", "Cy")
    val map = names.associate { it to it.length }
    println(map)
}

Kunci Duplikat

Jika dua elemen menghasilkan kunci yang sama dalam fungsi pengaitan, elemen terakhir akan dipertahankan. Pastikan kunci unik bila Anda memerlukan setiap elemen.

fun main() {
    val words = listOf("apple", "ant", "bee")
    val byFirst = words.associateBy { it.first() }
    println(byFirst)
}

Fungsi flatten

flatten menerima koleksi yang berisi koleksi-koleksi dan menggabungkannya menjadi satu daftar datar.

fun main() {
    val nested = listOf(listOf(1, 2), listOf(3, 4), listOf(5))
    val flat = nested.flatten()
    println(flat)
}

Fungsi flatMap

flatMap memetakan setiap elemen menjadi sebuah koleksi, lalu meratakan semua koleksi tersebut menjadi satu daftar. Ini adalah pemetaan ditambah perataan dalam satu langkah.

fun main() {
    val words = listOf("hi", "ok")
    val chars = words.flatMap { it.toList() }
    println(chars)
}

flatMap pada Data Bertingkat

flatMap ideal untuk memperluas struktur bertingkat menjadi satu urutan item.

data class Team(val members: List<String>)

fun main() {
    val teams = listOf(Team(listOf("Ann", "Bob")), Team(listOf("Cy")))
    val everyone = teams.flatMap { it.members }
    println(everyone)
}

flatMap dibandingkan Pemetaan

Gunakan map bila setiap elemen menghasilkan tepat satu hasil. Gunakan flatMap bila setiap elemen menghasilkan sebuah koleksi dan Anda ingin menggabungkan semuanya menjadi satu daftar datar.

fun main() {
    val numbers = listOf(1, 2, 3)
    val mapped = numbers.map { listOf(it, it * 10) }
    val flat = numbers.flatMap { listOf(it, it * 10) }
    println("map: $mapped")
    println("flatMap: $flat")
}

Menggabungkan Pengaitan dan FlatMap

Alat-alat ini sering digunakan bersama dalam alur pemrosesan data: ratakan data bertingkat, lalu kaitkan data tersebut ke dalam peta pencarian untuk akses cepat.

data class Order(val items: List<String>)

fun main() {
    val orders = listOf(Order(listOf("pen", "ink")), Order(listOf("pen")))
    val counts = orders.flatMap { it.items }.groupingBy { it }.eachCount()
    println(counts)
}

Kapan Menggunakan Masing-Masing

Pilih associateBy/associateWith untuk membuat peta pencarian cepat dari daftar, dan flatMap/flatten untuk meratakan koleksi bertingkat. Keduanya membuat pekerjaan dengan data terstruktur menjadi ringkas dan jelas.

Pemeriksaan Singkat

Apa yang dilakukan flatMap?

Ringkasan

Anda telah mempelajari cara membuat peta dengan associate, associateBy, dan associateWith (kunci duplikat terakhir yang muncul akan dipertahankan), serta meratakan struktur bertingkat dengan flatten dan flatMap. Semua ini melengkapi perangkat kerja koleksi Anda untuk mengubah, mengatur, mengagregasi, dan merestrukturisasi data.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Asosiasi dan Perataan” gratis?

Ya — teks lengkap “Asosiasi dan Perataan” 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 “Asosiasi dan Perataan”?

associate dan flatMap 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 “Asosiasi dan Perataan” 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. Penyaringan dan Pemetaan
  2. Pengelompokan dan Pemartisian
  3. Agregasi
  4. Asosiasi dan Perataan
← Kembali ke Kotlin Academy