map ve filter
- Kotlin kursu
- Orta seviye
- Ders 64/116
- 5 dk
map ve filter ile koleksiyon dönüştürme öğrenirsin.
map ve filter
map bir listenin her elemanına bir dönüşüm uygular ve yeni bir liste döndürür. Örnek: numbers.map { it * 2 } her sayıyı ikiye katlar. Orijinal liste değişmez.
filter bir koşulu sağlayan elemanları seçer. Örnek: numbers.filter { it > 5 } yalnızca beşten büyük sayıları alır. Her iki fonksiyon da lambda alır; it aktif elemanı temsil eder. Zincirleme kullanılabilir: önce map ile dönüştür, sonra filter ile daralt.
filter ve koşul
filter bir lambda alır ve lambdanın true döndürdüğü elemanları yeni listeye koyar. Koşul her zaman Boolean döndürmelidir. Örnek: numbers.filter { it % 2 == 0 } çift sayıları seçer.
Boş bir listede filter yine boş liste döndürür; hata vermez. filterNotNull ise null olmayan elemanları alır. map ve filter birlikte kullanıldığında önce dönüştürme sonra seçim yapılır; sıra önemlidir çünkü her adım yeni bir liste üretir.
Uygulama map ve filter ile dönüşüm
val numbers = listOf(1, 2, 3, 4, 5) tanımla. Önce map { it * 2 } ile her sayıyı ikiye katla, sonra filter { it > 5 } ile beşten büyük olanları seç ve sonucu println ile yazdır.
Başlangıç kodu
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// map ile ikiye katla, filter ile beşten büyükleri seç, println ile yazdır
}Örnek çözüm
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.map { it * 2 }.filter { it > 5 }
println(result)
}Beklenen çıktı
[6, 8, 10]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 numbers.map { it * 2 } ne döndürür?
- İlk eleman
- Koşulu sağlayan elemanlar
- Tek bir toplam değer
- Her elemanı ikiye katlayan yeni liste Doğru cevap
Açıklama: map her elemana dönüşüm uygulayıp yeni liste verir.
2 map çağrısını tamamla
numbers.____ { it * 2 }
numbers.map { it * 2 }
Açıklama: map her elemanı ikiye katlar.
3 map ve filter ifadelerini eşle
| Kavram | Anlamı |
|---|---|
map |
Dönüştürür |
filter |
Seçer |
{ it * 2 } |
İki katı |
{ it > 5 } |
Beşten büyük |