Ce face Map.toList
toList() pe un map dă o List<Pair<K, V>>, în ordinea intrărilor. Fiecare pereche are first (cheia) și second (valoarea) și se poate desface cu (k, v).
Este util când vrei operații de listă pe un map: sortare după valoare, primele n intrări, poziții. Drumul invers, de la listă de perechi la map, este toMap().
Ce returnează
O List<Pair<K, V>>.
Exemple
Exemplul 1: Top 3 după valoare
Transformăm în listă, sortăm descrescător după populație (second) și luăm primele trei.
fun main() {
val populatie = mapOf("Iași" to 271, "Cluj" to 286, "Timișoara" to 250, "Constanța" to 263, "Brașov" to 237)
val top = populatie.toList().sortedByDescending { it.second }.take(3)
top.forEachIndexed { i, (oras, mii) -> println("${i + 1}. $oras – $mii mii") }
}
Rezultat
1. Cluj – 286 mii
2. Iași – 271 mii
3. Constanța – 263 mii
Exemplul 2: Dus-întors: map, listă, map
Lista de perechi poate fi filtrată, apoi transformată înapoi în map cu toMap().
fun main() {
val note = mapOf("Ana" to 9, "Ion" to 4, "Maria" to 10)
val perechi = note.toList()
println(perechi)
println(perechi.filter { it.second >= 5 }.toMap())
}
Rezultat
[(Ana, 9), (Ion, 4), (Maria, 10)]
{Ana=9, Maria=10}
Greșeli frecvente
- Te aștepți ca
toList()să dea doar valorile: dă perechi. Pentru valori foloseștevalues.toList(), pentru cheikeys.toList().
Comenzi înrudite
Iterable.toMap: Transformă o listă de perechi (cheie to valoare) într-un map; la chei repetate rămâne ultima valoare.Map.keys: Proprietățile keys, values și entries dau cheile, valorile și perechile cheie–valoare ale unui map.Iterable.sortedBy: Sortează elementele după valoarea calculată de o funcție, de exemplu elevii după medie sau orașele după populație.Pair: O pereche de două valori, first și second; a to b este felul scurt de a crea un Pair, folosit în mapOf.