Kotlin Filter ve Map: Listelerle Çalışmanın Kolay Yolu

Başlatan Unraz, Nis 08, 2025, 02:39 ÖS

« önceki - sonraki »

Unraz


Kotlin, modern ve güçlü bir programlama dilidir ve Android geliştirme başta olmak üzere birçok alanda tercih edilir. Kotlin'in sunduğu filter ve map fonksiyonları, listeler üzerinde veri işleme süreçlerini sadeleştiren en popüler araçlardandır. Bu yazıda, Kotlin'de filter ve map fonksiyonlarının ne olduğunu, nasıl kullanıldığını ve pratik örneklerle nasıl uygulanabileceğini açıklayacağız.

Kotlin'de Filter ve Map Nedir?
Kotlin, fonksiyonel programlama özelliklerini destekler ve bu kapsamda filter ile map gibi yüksek seviye fonksiyonlar sunar. Bu fonksiyonlar, koleksiyonlar (örneğin listeler) üzerinde işlem yapmayı kolaylaştırır:

  • Filter: Bir koleksiyondaki elemanları belirli bir koşula göre süzer ve sadece koşulu sağlayan elemanları içeren yeni bir liste döndürür.
  • Map: Bir koleksiyondaki her elemanı dönüştürür (transform) ve yeni bir liste olarak geri döndürür.

Bu iki fonksiyon, döngü yazmadan hızlı ve okunabilir kodlar oluşturmanıza olanak tanır.

Filter Kullanımı: Verileri Süzme
Filter fonksiyonu, bir koleksiyonun elemanlarını bir koşula göre filtrelemek için kullanılır. Koşulu sağlayan elemanlar yeni bir listeye eklenir, diğerleri ise dışarıda bırakılır.

Temel Filter Örneği
Bir listedeki çift sayıları bulalım:
fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6)
    val evenNumbers = numbers.filter { it % 2 == 0 }
    println("Çift Sayılar: $evenNumbers")
}


Çıktı: Çift Sayılar: [2, 4, 6]

Burada it, listedeki her bir elemanı temsil eder. { it % 2 == 0 } ifadesi, elemanın çift olup olmadığını kontrol eder.

Daha Karmaşık Bir Filter Örneği
Bir string listesinden uzunluğu 3'ten büyük olan kelimeleri filtreleyelim:
fun main() {
    val words = listOf("elma", "armut", "muz", "portakal")
    val longWords = words.filter { it.length > 3 }
    println("Uzun Kelimeler: $longWords")
}

Çıktı: Uzun Kelimeler: [elma, armut, portakal]

Map Kullanımı: Verileri Dönüştürme
Map fonksiyonu, bir koleksiyondaki her elemanı bir işlemden geçirerek yeni bir liste oluşturur. Bu, verileri dönüştürmek için idealdir.

Temel Map Örneği
Bir listedeki sayıları iki katına çıkaralım:
fun main() {
    val numbers = listOf(1, 2, 3, 4)
    val doubled = numbers.map { it * 2 }
    println("İki Katına Çıkarılmış Sayılar: $doubled")
}


Çıktı: İki Katına Çıkarılmış Sayılar: [2, 4, 6, 8]

String Dönüşümü ile Map
Bir listedeki kelimeleri büyük harfe çevirelim:
fun main() {
    val fruits = listOf("elma", "muz", "kiraz")
    val uppercased = fruits.map { it.uppercase() }
    println("Büyük Harfli Meyveler: $uppercased")
}

Çıktı: Büyük Harfli Meyveler: [ELMA, MUZ, KIRAZ]

Filter ve Map'i Birlikte Kullanma
Bu iki fonksiyonu zincirleme (chaining) yaparak daha güçlü işlemler yapabilirsiniz. Örneğin, bir listedeki çift sayıları bulup karelerini alalım:
fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6)
    val result = numbers.filter { it % 2 == 0 }.map { it * it }
    println("Çift Sayıların Kareleri: $result")
}

Çıktı: Çift Sayıların Kareleri: [4, 16, 36]

Bu örnekte önce filter ile çift sayılar seçildi, ardından map ile her birinin karesi alındı.

Gerçek Dünya Örneği: Kullanıcı Listesi İşleme
Bir kullanıcı listesini filtreleyip dönüştürelim:
data class User(val name: String, val age: Int)

fun main() {
    val users = listOf(
        User("Ali", 25),
        User("Ayşe", 17),
        User("Veli", 30)
    )
   
    val adults = users.filter { it.age >= 18 }.map { "${it.name} (${it.age})" }
    println("Yetişkin Kullanıcılar: $adults")
}

Çıktı: Yetişkin Kullanıcılar: [Ali (25), Veli (30)]

Filter ve Map'in Avantajları
  • Okunabilirlik: Geleneksel döngülerden daha temiz ve kısa kod.
  • Fonksiyonel Yaklaşım: Yan etkilerden (side effects) kaçınarak daha güvenli kod yazımı.
  • Performans: Koleksiyonlar üzerinde hızlı ve etkili işlem.

Sonuç
Kotlin'de filter ve map fonksiyonları, listelerle çalışmayı kolaylaştıran güçlü araçlardır. İster basit bir filtreleme yapın ister karmaşık veri dönüşümleri gerçekleştirin, bu fonksiyonlar kodunuzu daha kısa ve anlaşılır hale getirir. Yukarıdaki örneklerle bu yapıları öğrenebilir ve kendi projelerinizde uygulayabilirsiniz.