0Pricing
Kotlin Academy · Ders

İlişkilendirme ve Düzleştirme

associate ve flatMap

İlişkilendirme ve Düzleştirme, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 4. 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.

İlişkilendirme ve Düzleştirme

İki güçlü koleksiyon aracı daha vardır: associate ailesindeki işlevler bir listeden haritalar oluşturur; flatMap ve flatten ise iç içe koleksiyonları tek bir düz koleksiyona dönüştürür.

associateWith İşlevi

associateWith, her öğeyi anahtar olarak kullanır ve değerini bir lambda ile hesaplayarak bir Map oluşturur.

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

associateBy İşlevi

associateBy bunun tersidir: anahtarı her öğeden hesaplar ve öğeyi değer olarak korur.

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)
}

İlişkilendirme İşlevi

Genel amaçlı associate, her öğe için bir Pair döndürerek hem anahtarı hem de değeri aynı anda oluşturmanızı sağlar.

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

Yinelenen Anahtarlar

Bir associate işlevinde iki öğe aynı anahtarı üretirse, sonuncusu geçerli olur. Her öğeye ihtiyacınız olduğunda anahtarları benzersiz tutun.

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

flatten İşlevi

flatten, koleksiyonlardan oluşan bir koleksiyonu alır ve bunları tek bir düz listede birleştirir.

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

flatMap İşlevi

flatMap, her öğeyi bir koleksiyona eşler ve ardından tüm bu koleksiyonları tek bir listede düzleştirir. Tek adımda eşleme ve düzleştirme işlemlerini birleştirir.

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

İç İçe Verilerde flatMap

flatMap, iç içe yapıları tek bir öğe dizisine genişletmek için idealdir.

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 ve Eşleme

Her öğe tam olarak bir sonuç ürettiğinde map kullanın. Her öğe bir koleksiyon ürettiğinde ve bunların tümünü tek bir düz listede birleştirmek istediğinizde flatMap kullanın.

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")
}

İlişkilendirme ile FlatMap'i Birleştirme

Bu araçlar veri işlem hatlarında sıklıkla birlikte kullanılır: iç içe verileri düzleştirin, ardından hızlı erişim için bunları bir arama haritasıyla ilişkilendirin.

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)
}

Her Birini Ne Zaman Kullanmalı

Listelerden hızlı arama haritaları oluşturmak için associateBy ve associateWith işlevlerini; iç içe koleksiyonları tek düzeye indirmek için flatMap ve flatten işlevlerini seçin. Yapılandırılmış verilerle çalışmayı kısa ve anlaşılır hâle getirirler.

Kısa Kontrol

flatMap ne yapar?

Özet

associate, associateBy ve associateWith ile haritalar oluşturmayı (yinelenen son anahtar geçerli olur), flatten ve flatMap ile iç içe yapıları düzleştirmeyi öğrendiniz. Bunlar dönüştürme, düzenleme, toplama ve yeniden yapılandırma işlemleri için koleksiyon araç takımınızı tamamlar.

Sıkça Sorulan Sorular

“İlişkilendirme ve Düzleştirme” dersi ücretsiz mi?

Evet — “İlişkilendirme ve Düzleştirme” 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.

“İlişkilendirme ve Düzleştirme” dersinde ne öğreneceğim?

associate ve flatMap 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 4. dersidir.

“İlişkilendirme ve Düzleştirme” 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. Filtreleme ve Eşleme
  2. Gruplama ve Bölümlendirme
  3. Toplama
  4. İlişkilendirme ve Düzleştirme
← Kotlin Academy Sayfasına Dön