Kotlin Academy · Ders

map ve flatMap: Her Öğeyi Dönüştürme

Koleksiyonları map ile dönüştürün ve iç içe sonuçları flatMap ile düzleştirin.

1. ders / 413 adım

map ve flatMap: Her Öğeyi Dönüştürme, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Dönüşümün Temelleri

map, her öğeye bir işlev uygular ve aynı boyutta yeni bir koleksiyon döndürür. flatMap de aynı işlemi yapar; ancak listelerden oluşan listeleri düzleştirerek tek bir listeye dönüştürür.

Temel Eşleme

Her öğeyi bir lambda ile dönüştürün; sonuç, girdiyle aynı boyuta sahip olur.

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

Eşleme Türü Değiştirir

Çıktı öğesinin türü girdiden farklı olabilir; List<Int>, List<String> hâline gelebilir.

fun main() {
    val nums = listOf(1, 2, 3)
    val labels = nums.map { "Item $it" }
    println(labels)
}

Veri Sınıfı Üzerinde Eşleme

Her öğeden bir özelliği seçin; veri sınıflarını daha basit türlere dönüştürün.

data class User(val name: String, val age: Int)
fun main() {
    val users = listOf(User("Ada", 35), User("Ben", 22))
    val names = users.map { it.name }
    println(names) // [Ada, Ben]
}

Eşleme Çağrılarını Zincirleme

Birden çok map çağrısı sorunsuz biçimde birleştirilebilir; her biri öncekinin çıktısını dönüştürür.

fun main() {
    val nums = listOf(1, 2, 3)
    val result = nums.map { it + 1 }.map { it * 10 }
    println(result) // [20, 30, 40]
}

Temel flatMap

flatMap, her öğe için bir liste döndüren bir işlev çağırır ve ardından tüm sonuçları tek bir listede düzleştirir.

fun main() {
    val words = listOf("hello", "world")
    val chars = words.flatMap { it.toList() }
    println(chars) // [h, e, l, l, o, w, o, r, l, d]
}

flatMap Ne Zaman Kullanılmalı

Lambda doğal olarak bir liste üretiyorsa ve listelerden oluşan bir liste yerine tek bir düz sonuç istiyorsanız flatMap kullanın.

data class Order(val items: List<String>)
fun main() {
    val orders = listOf(
        Order(listOf("pen", "book")),
        Order(listOf("lamp")),
        Order(listOf("mug", "ring"))
    )
    val allItems = orders.flatMap { it.items }
    println(allItems) // [pen, book, lamp, mug, ring]
}

Liste Eşlemesi ve flatMap

Sonuç türlerini karşılaştırın; map iç içe yapıyı korur, flatMap ise kaldırır.

fun main() {
    val nums = listOf(1, 2, 3)
    val mapped = nums.map { listOf(it, it * 10) }
    val flat = nums.flatMap { listOf(it, it * 10) }
    println(mapped) // [[1, 10], [2, 20], [3, 30]]
    println(flat)   // [1, 10, 2, 20, 3, 30]
}

Koşullu Listelerle flatMap

Atmak istediğiniz öğeler için boş listeler döndürün; flatMap, tek adımda filtreleme ve dönüştürme yapar.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5)
    val doubled = nums.flatMap { if (it % 2 == 0) listOf(it, it * 2) else emptyList() }
    println(doubled) // [2, 4, 4, 8]
}

Dizinle Eşleme

mapIndexed, lambda'ya hem dizini hem de değeri sağlar.

fun main() {
    val fruits = listOf("apple", "banana", "cherry")
    val labeled = fruits.mapIndexed { i, name -> "$i: $name" }
    println(labeled)
}

Dizi ve Liste

Çok uzun zincirlerde, ara listeler oluşturmaktan kaçınmak için önce bir Sequence öğesine dönüştürün.

fun main() {
    val big = (1..100).asSequence()
        .map { it + 1 }
        .filter { it % 5 == 0 }
        .map { it * 2 }
        .toList()
    println(big.take(5)) // first 5 results
}

Hızlı Kontrol

map ile flatMap arasındaki temel fark nedir?

Özet

Eşleme, her öğeyi dönüştürür (boyut aynı kalır, tür değişebilir). flatMap, liste döndüren bir işlev uygular ve ardından tüm sonuçları birleştirir. Dizinler için mapIndexed ile birleştirin; uzun tembel işlem zincirleri için Sequence kullanın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
51
Dersler
203

Sıkça Sorulan Sorular

“map ve flatMap: Her Öğeyi Dönüştürme” dersi ücretsiz mi?

Evet — “map ve flatMap: Her Öğeyi Dönüştürme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“map ve flatMap: Her Öğeyi Dönüştürme” dersinde ne öğreneceğim?

Koleksiyonları map ile dönüştürün ve iç içe sonuçları flatMap ile düzleştirin. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“map ve flatMap: Her Öğeyi Dönüştürme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. map ve flatMap: Her Öğeyi Dönüştürme
  2. filter, filterNot ve partition
  3. fold, reduce ve runningFold
  4. Sequence ile İşlem Hatlarını Zincirleme ve Ara Listelerden Kaçınma
← Kotlin Academy Sayfasına Dön