Liste metotları
- Kotlin kursu
- Başlangıç
- Ders 63/116
- 5 dk
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
fun main() {
val nums = listOf(3, 7, 12)
// Her sayının iki katını map ile hesapla ve yazdır
}Örnek çözüm
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ç
nums.____ { it > 10 }
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 |