Koleksiyonlar
- Kotlin kursu
- Başlangıç
- Ders 114/116
- 6 dk
List ve Map ile veri yönetimini yazarsın.
List işlemleri: filter
Kotlin listelerinde filter bir koşula uyan elemanları seçer. Görev takipte tamamlananları ya da bekleyenleri ayırmak için idealdir.
val tamamlananlar = tasks.filter { it.done }
val bekleyenler = tasks.filter { !it.done }it listedeki her bir elemanı temsil eder. Koşul true döndüren elemanlar sonuçta kalır. Böylece tek satırda alt liste üretirsin.
forEach ve count
forEach listedeki her eleman için bir blok çalıştırır. count ise eleman sayısını verir. İkisi de liste üzerinde pratik araçlardır.
tasks.forEach { println(it) }
val n = tasks.count()forEach bir döngü gibi davranır ama daha sade yazılır. count uzunluğu verir; ayrıca bir koşul da alabilir: tasks.count { it.done }. Böylece listeden hem geçer hem de özet çıkarırsın.
Uygulama Tamamlananları süz ve yazdır
TaskList sınıfına fun listDone() = tasks.filter { it.done } yöntemi ekle. main'de iki görev ekle, birinciyi list.tasks[0].done = true ile tamamla, sonra println ile list.listDone()'u yazdır.
Başlangıç kodu
class Task(val title: String) {
var done: Boolean = false
override fun toString(): String {
return if (done) "[x] $title" else "[ ] $title"
}
}
class TaskList {
val tasks = mutableListOf<Task>()
fun addTask(title: String) {
tasks.add(Task(title))
}
// listDone metodunu buraya yaz
}
fun main() {
val list = TaskList()
// İki görev ekle; birini done yap; tamamlananları yazdır
}Örnek çözüm
class Task(val title: String) {
var done: Boolean = false
override fun toString(): String {
return if (done) "[x] $title" else "[ ] $title"
}
}
class TaskList {
val tasks = mutableListOf<Task>()
fun addTask(title: String) {
tasks.add(Task(title))
}
fun listDone() = tasks.filter { it.done }
}
fun main() {
val list = TaskList()
list.addTask("Kotlin çalış")
list.addTask("Alışveriş")
list.tasks[0].done = true
println(list.listDone())
}Beklenen çıktı
[[x] Kotlin çalış]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 filter ne yapar?
- Bir koşula göre alt küme verir Doğru cevap
- Tüm elemanları döndürür
- Listeyi sıralar
- İlk elemanı verir
Açıklama: filter koşula uyan elemanları seçer.
2 Boşluğu doldur: tamamlananları süz
val tamamlananlar = tasks.____ { it.done }
val tamamlananlar = tasks.filter { it.done }
Açıklama: filter { it.done } tamamlanan görevleri verir.
3 İşlem ve kullanım eşleştir
| Kavram | Anlamı |
|---|---|
filter |
Koşula göre süz |
forEach |
Her biri için yap |
count |
Say |
find |
İlkini bul |