Map döngüsü
- Kotlin kursu
- Başlangıç
- Ders 69/116
- 5 dk
for ile map üzerinde gezinmeyi öğrenirsin.
Map döngüsü: for ile gezme
Bir map'in tüm çiftlerini gezmek için for ((k, v) in map) döngüsünü kullanırsın. Burada k anahtar, v değer olur. Yalnızca anahtarları ya da değerleri gezmek için map.keys ya da map.values kullanırsın.
val ages = mapOf("Ayşe" to 25, "Mert" to 30)
for ((name, age) in ages) {
println("$name: $age")
}Bu yapısal döngü (destructuring), her Entry'yi otomatik olarak key ve value bileşenlerine ayırır.
forEach ve entry yapısı
forEach { } lambda ile her çifti gezer. Lambda'da eleman bir Entry<K, V> olur; .key ve .value alanlarıyla bileşenlerine ulaşırız.
ages.forEach { entry ->
println("${entry.key} = ${entry.value}")
}
// ya da kısa yol:
ages.forEach { println("${it.key} = ${it.value}") }it, lambda'nın tek parametresinin otomatik adıdır; bu yüzden tek parametreli lambda'lerde isim vermek isteğe bağlıdır.
Uygulama Şehir-nüfus çiftlerini yazdır
mapOf("İstanbul" to 15, "Ankara" to 5) oluştur. for ((city, pop) in pops) döngüsüyle her çifti "$city: $pop milyon" biçiminde ayrı satırda yazdır.
Başlangıç kodu
fun main() {
val pops = mapOf("İstanbul" to 15, "Ankara" to 5)
// Her şehir-nüfus çiftini "şehir: nüfus milyon" biçiminde yazdır
}Örnek çözüm
fun main() {
val pops = mapOf("İstanbul" to 15, "Ankara" to 5)
for ((city, pop) in pops) {
println("$city: $pop milyon")
}
}Beklenen çıktı
İstanbul: 15 milyon Ankara: 5 milyon
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Boşluğu doldur: map döngüsü
for ((k, v) ____ map) println("$k = $v")
for ((k, v) in map) println("$k = $v")
Açıklama: for ((k, v) in map) her çifti gezer.
2 Döngü ifadesini kullanımıyla eşleştir
| Kavram | Anlamı |
|---|---|
for ((k, v) in map) |
Anahtar-değer çiftini gezer |
for (k in map.keys) |
Yalnızca anahtarları gezer |
for (v in map.values) |
Yalnızca değerleri gezer |
map.entries |
Tüm Entry çiftleri |
3 for (x in map) — x ne tür olur?
- Exception
- Yalnızca anahtar
- Yalnızca değer
- Entry<K, V> Doğru cevap
Açıklama: Map üzerinde for döngüsünde her eleman bir Entry<K, V> olur.