Koleksiyonlarda filter, map ve find
Standart kütüphane işlevlerini kullanarak koleksiyonları dönüştürmek ve filtrelemek için lambda ifadelerini uygulayın.
Koleksiyonlarda filter, map ve find, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Üç Temel İşlev
Filtreleme, bir koşulla eşleşen öğeleri korur. Eşleme, her öğeyi dönüştürür. Bulma, eşleşen ilk öğeyi (veya null) döndürür. Birlikte koleksiyon işlemenin büyük bölümünü karşılarlar.
filter Temelleri
filter, yalnızca koşulun doğru olduğu öğeleri içeren yeni bir liste döndürür.
fun main() {
val nums = listOf(1, 2, 3, 4, 5, 6)
val evens = nums.filter { it % 2 == 0 }
println(evens) // [2, 4, 6]
}map Temelleri
map, her öğenin lambda tarafından dönüştürüldüğü, aynı boyutta yeni bir liste döndürür.
fun main() {
val nums = listOf(1, 2, 3)
val squares = nums.map { it * it }
println(squares) // [1, 4, 9]
}find Temelleri
find, koşulla eşleşen ilk öğeyi, eşleşme yoksa null değerini döndürür.
fun main() {
val words = listOf("apple", "banana", "cherry")
val match = words.find { it.startsWith("b") }
println(match) // banana
}filter ve map'i Zincirleme
Anlatımı güçlü işlem hatları oluşturmak için bunları nokta sözdizimiyle birleştirin.
fun main() {
val nums = listOf(1, 2, 3, 4, 5)
val result = nums.filter { it % 2 == 1 }.map { it * 10 }
println(result) // [10, 30, 50]
}Veri Sınıflarını Filtreleme
filter ve map, veri sınıfı örneklerinden oluşan koleksiyonlarda özellikle kullanışlıdır.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Ana", 17), User("Ben", 25), User("Cal", 31))
val adultNames = users.filter { it.age >= 18 }.map { it.name }
println(adultNames) // [Ben, Cal]
}find ve first Karşılaştırması
find, null olabilir bir değer döndürür; first { ... } eşleşme yoksa hata fırlatır. İsteğe bağlı eşleşmeler için find kullanın.
fun main() {
val nums = listOf(1, 2, 3)
println(nums.find { it > 10 }) // null
// nums.first { it > 10 } // throws NoSuchElementException
println(nums.firstOrNull { it > 10 }) // null (alias of find)
}filterNot ve filterNotNull
filterNot, koşulu tersine çevirir. filterNotNull, null olabilir değerlerden oluşan bir listedeki null girdileri kaldırır.
fun main() {
val nums = listOf(1, 2, 3, 4)
println(nums.filterNot { it % 2 == 0 }) // [1, 3]
val maybe: List<String?> = listOf("a", null, "b", null, "c")
println(maybe.filterNotNull()) // [a, b, c]
}mapNotNull
mapNotNull, dönüştürme işleminden sonra null değerleri kaldırır; ayrıştırma için kullanışlıdır.
fun main() {
val raw = listOf("1", "two", "3", "four")
val numbers = raw.mapNotNull { it.toIntOrNull() }
println(numbers) // [1, 3]
}Gerçek Yaşamdan İşlem Hattı
filter, map ve son bir indirgeme işlemini birleştiren küçük bir örnek.
data class Product(val name: String, val price: Double, val inStock: Boolean)
fun main() {
val products = listOf(
Product("Pen", 1.0, true),
Product("Book", 12.0, false),
Product("Lamp", 25.0, true)
)
val total = products
.filter { it.inStock }
.map { it.price }
.sum()
println("Available total: $total") // 26.0
}İşlemler Arasında Seçim Yapma
Bir alt küme istediğinizde filtreleme, dönüştürme için eşleme, tek bir isteğe bağlı eşleşme için bulma kullanın; gerektiğinde bunları zincirleyin.
fun main() {
val words = listOf("alpha", "beta", "gamma", "delta")
println(words.filter { it.length == 5 }) // [alpha, gamma, delta]
println(words.map { it.uppercase() }) // [ALPHA, BETA, GAMMA, DELTA]
println(words.find { it.endsWith("ta") }) // beta
}Kısa Denetim
Hangi işlev, lambda tarafından dönüştürülmüş öğeleri içeren yeni bir koleksiyon döndürür?
Özet
Filtreleme seçer, eşleme dönüştürür, bulma ilk eşleşmeyi (veya null) bulur. Bunları işlem hatlarında serbestçe birleştirin; isteğe bağlı değerleri işlerken mapNotNull ve filterNotNull işlevlerini kullanın.
Sıkça Sorulan Sorular
“Koleksiyonlarda filter, map ve find” dersi ücretsiz mi?
Evet — “Koleksiyonlarda filter, map ve find” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Koleksiyonlarda filter, map ve find” dersinde ne öğreneceğim?
Standart kütüphane işlevlerini kullanarak koleksiyonları dönüştürmek ve filtrelemek için lambda ifadelerini uygulayın. Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Koleksiyonlarda filter, map ve find” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Lambda Nedir? Söz Dizimi ve Türleri
- İşlevlere Lambda Aktarma
- it: Örtük Parametre
- Koleksiyonlarda filter, map ve find