flatMap ve flatten
- Kotlin kursu
- İleri seviye
- Ders 59/83
- 5 dk
flatMap ve flatten ile düzleştirme öğrenirsin.
flatMap ve flatten
flatMap, her öğeyi bir listeye dönüştürür ve tüm listeleri tek bir liste olarak birleştirir. flatten ise iç içe listeyi tek seviyeye indirir.
Örnek: listOf("ab", "cd").flatMap { it.toList() } ifadesi [a, b, c, d] döndürür. listOf(listOf(1, 2), listOf(3, 4)).flatten() ise [1, 2, 3, 4] verir. flatMap = map + flatten. Bu kalıp, iç içe yapıları düzleştirmek için kullanılır.
flatten ile iç içe liste
flatten, iç içe geçmiş bir listeyi tek seviyeye indirir. Dönüşüm gerekmiyorsa flatten, flatMap'ten daha okunaklıdır.
Örnek: listOf(listOf(1, 2), listOf(3, 4), listOf(5)).flatten(). Bu, [1, 2, 3, 4, 5] döndürür. flatten yalnızca bir seviye indirir; daha derin iç içe yapılar için flatten birden çok kez çağrılır. Bu kalıp, gruplandırılmış veriyi tek listeye açmak için kullanılır.
Uygulama flatMap ile kelimeleri harflere ayır
main içinde listOf("elma", "armut").flatMap { it.toList() } sonucunu bir değişkene ata ve println ile yazdır.
Başlangıç kodu
// main'de iki kelimeyi flatMap ile harflere ayır
// sonucu println ile yazdırÖrnek çözüm
fun main() {
val chars = listOf("elma", "armut").flatMap { it.toList() }
println(chars)
}Beklenen çıktı
[e, l, m, a, a, r, m, u, t]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 flatMap çağrısını tamamla
val chars = listOf("ab", "cd").____ { it.toList() }
val chars = listOf("ab", "cd").flatMap { it.toList() }
Açıklama: flatMap her öğeyi listeye çevirip birleştirir.
2 flatMap/flatten parçalarını eşle
| Kavram | Anlamı |
|---|---|
flatMap { } |
Dönüşüm ve birleştirme |
flatten() |
Tek seviye indirme |
it.toList() |
Listeye çevirme |
[1, 2, 3, 4] |
Sonuç |
3 listOf(listOf(1, 2), listOf(3, 4)).flatten() çağrısı ne döndürür?
- [[1, 2], [3, 4]]
- [1, 2, 3, 4] Doğru cevap
- [1, 2]
- [3, 4]
Açıklama: flatten iç içe listeyi tek seviyeye indirir.