CodeBlanks Logo Icon CodeBlanks

Liste metotları

map, filter, sortedWith ile liste işleme öğrenirsin.

Liste metotları: map, filter, sortedWith

Bir listeyi dönüştürmek için map { } her elemanı yeni bir değere çevirir. filter { } koşula uyanları seçer. sortedWith(cmp) ise bir karşılaştırıcıya göre sıralar; sortedBy { } onun kısa yoludur.

val nums = listOf(3, 7, 12)
val doubles = nums.map { it * 2 }       // [6, 14, 24]
val big = nums.filter { it > 5 }       // [7, 12]
val sorted = nums.sortedBy { it }      // [3, 7, 12]

Bu metotlar orijinal listeyi değiştirmez; yeni bir liste döndürür. it, lambda içinde elemanın otomatik adıdır.

sortedWith ve compareBy

sortedWith bir Comparator ister. En kolay yol compareBy { } ile bir anahtar verip onunla sıralamaktır. Aşağıya azalan sırada sıralamak için reverseOrder() kullanabilirsin.

val people = listOf("Selin", "Ayşe", "Mert")
val byName = people.sortedBy { it }            // [Ayşe, Mert, Selin]
val byLen = people.sortedBy { it.length }      // uzunluk artan
val desc = people.sortedWith(compareByDescending { it })

Bu metotlar yeni liste döndürür; orijinal liste değişmez. İki anahtara göre sıralamak için compareBy({ a }, { b }) zinciri kullanılır.

Uygulama Sayıların iki katını map ile yazdır

Bir listOf(3, 7, 12) oluştur. map { it * 2 } ile her sayının iki katını hesaplayıp yeni listeyi println ile yazdır.

Başlangıç kodu

Main.kt
fun main() {
    val nums = listOf(3, 7, 12)
    // Her sayının iki katını map ile hesapla ve yazdır
}

Örnek çözüm

Main.kt
fun main() {
    val nums = listOf(3, 7, 12)
    val doubles = nums.map { it * 2 }
    println(doubles)
}

Beklenen çıktı

[6, 14, 24]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 listOf(1, 2, 3).map { it * 2 } ne döner?

  • [1, 2, 3]
  • 6
  • [2, 4, 6] Doğru cevap
  • [1, 4, 9]

Açıklama: map her elemanı 2 ile çarpar ve yeni liste döndürür.

2 Boşluğu doldur: koşula uyanları seç

Soru
nums.____ { it > 10 }
Cevap
nums.filter { it > 10 }

Açıklama: nums.filter { it > 10 } yalnızca büyük elemanları seçer.

3 Metodu amacıyla eşleştir

Kavram Anlamı
map { } Her elemanı dönüştürür
filter { } Koşula uyanları seçer
sortedBy { } Bir anahtara göre sıralar
sortedWith(cmp) Özel karşılaştırıcıyla sıralar

Başlangıç bölümündeki tüm dersler