Ce face Map.keys
keys este mulțimea cheilor (fără duplicate, prin definiție). values este colecția valorilor (pot exista valori repetate). entries este mulțimea intrărilor; fiecare intrare are key și value.
Toate trei sunt vederi asupra map-ului, nu copii: pe un MutableMap, dacă ștergi o cheie din keys, dispare și intrarea din map. Pe ele poți folosi toate funcțiile de colecții: sum(), sorted(), filter, max().
Ce returnează
keys: Set<K>. values: Collection<V>. entries: Set<Map.Entry<K, V>>.
Exemple
Exemplul 1: Chei, valori, intrări
Pe values facem suma și maximul; pe entries avem acces la ambele părți.
fun main() {
val vanzari = mapOf("ianuarie" to 120, "februarie" to 95, "martie" to 140)
println(vanzari.keys)
println(vanzari.values)
println("Total: ${vanzari.values.sum()}, maxim: ${vanzari.values.max()}")
for (intrare in vanzari.entries) {
println("${intrare.key} -> ${intrare.value}")
}
}
Rezultat
[ianuarie, februarie, martie]
[120, 95, 140]
Total: 355, maxim: 140
ianuarie -> 120
februarie -> 95
martie -> 140
Exemplul 2: Ștergere prin keys
keys este o vedere: ștergând din ea cheile scurte, intrările dispar și din map.
fun main() {
val coduri = mutableMapOf("RO" to "România", "MD" to "Moldova", "AUT" to "Austria")
coduri.keys.removeAll { it.length > 2 }
println(coduri)
}
Rezultat
{RO=România, MD=Moldova}
Exemplul 3: Chei sortate pentru afișare
Pentru o afișare în ordine alfabetică sortăm cheile și citim valorile cu getValue.
fun main() {
val note = mapOf("Radu" to 8, "Ana" to 10, "Maria" to 9)
for (nume in note.keys.sorted()) {
println("$nume: ${note.getValue(nume)}")
}
}
Rezultat
Ana: 10
Maria: 9
Radu: 8
Greșeli frecvente
- Aștepți ca
valuessă fie unSet: este oCollectionși poate avea valori repetate. Pentru valori unice foloseștevalues.toSet(). - Păstrezi
map.keysîntr-o variabilă crezând că ai o copie: se schimbă odată cu map-ul. Fă o copie cutoList()/toSet().
Comenzi înrudite
Map.forEach: Parcurge toate intrările unui map și execută o acțiune pentru fiecare pereche cheie–valoare.Map.containsKey: Verifică dacă map-ul are o anumită cheie (containsKey, operatorul in) sau o anumită valoare (containsValue).Map.toList: Transformă map-ul într-o listă de perechi (cheie, valoare), pe care o poți sorta, filtra sau tăia.mapOf: Creează un map (dicționar cheie → valoare) din perechi scrise cu „to”; mutableMapOf dă unul pe care îl poți modifica.