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.
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.
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
- map ve flatMap: Her Öğeyi Dönüştürme
- filter, filterNot ve partition
- fold, reduce ve runningFold
- Sequence ile İşlem Hatlarını Zincirleme ve Ara Listelerden Kaçınma