Array metotları
- Kotlin kursu
- Başlangıç
- Ders 57/116
- 5 dk
map, filter, forEach ile dizi işleme öğrenirsin.
map, filter, forEach
map her elemanı dönüştürür, filter koşula uyanları seçer, forEach her eleman için bir işlem yapar. Lambda { } ile yazılır; it elemanı temsil eder.
val nums = intArrayOf(1, 2, 3, 4)
val doubled = nums.map { it * 2 } // [2, 4, 6, 8]
val even = nums.filter { it % 2 == 0 } // [2, 4]
nums.forEach { println(it) } // 1, 2, 3, 4map yeni bir liste döndürür (her eleman dönüştürülür). filter koşulu true olan elemanlardan yeni liste yapar. forEach birim işlem yapar, değer döndürmez.
Bu metotlar lambda (isimsiz fonksiyon) kullanır; it varsayılan parametre adıdır.
Uygulama İki katına çıkar
Bir fun main() yaz. val nums = intArrayOf(1, 2, 3, 4) ile dizi oluştur. val doubled = nums.map { it * 2 } ile her elemanı ikiye katla. println(doubled) ile sonucu yazdır.
Başlangıç kodu
fun main() {
// map ile iki katına çıkar
}Örnek çözüm
fun main() {
val nums = intArrayOf(1, 2, 3, 4)
val doubled = nums.map { it * 2 }
println(doubled)
}Beklenen çıktı
[2, 4, 6, 8]
Metot zincirleme
Bu metotlar zincirlenebilir: nums.filter { ... }.map { ... } önce süzer sonra dönüştürür.
val nums = intArrayOf(1, 2, 3, 4, 5, 6)
val result = nums.filter { it % 2 == 0 }.map { it * 10 }
println(result) // [20, 40, 60]Önce çift sayılar (2, 4, 6) süzülür, sonra her biri 10 ile çarpılır (20, 40, 60). Zincir soldan sağa işler.
Zincirleme kodu kısa ve okunaklı tutar; ara değişkenler gerekmez.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 arr.map { it * 2 } ne yapar?
- Diziyi ters çevirir
- Çift sayıları seçer
- Her elemanı yazdırır
- Her elemanı 2 ile çarpar Doğru cevap
Açıklama: map her elemanı dönüştürür; burada 2 ile çarpar.
2 map çağrısını tamamla
val doubled = nums.____ { it * 2 }
val doubled = nums.map { it * 2 }
Açıklama: nums.map { it * 2 } her elemanı ikiye katlar.
3 Metotları eşleştir
| Kavram | Anlamı |
|---|---|
map { it * 2 } |
Dönüştürür |
filter { it > 0 } |
Süzüp seçer |
forEach { println(it) } |
Her biri için işlem |
it |
Lambda parametresi |