Ce face Map.plus
map + (k to v) întoarce un map nou cu intrarea adăugată; dacă cheia exista, valoarea din dreapta o înlocuiește. map + altMap unește două map-uri; la chei comune câștigă cel din dreapta.
map - k întoarce un map nou fără cheia k; map - listOf(k1, k2) scoate mai multe chei. Originalul nu se schimbă, deci merg și pe map-uri doar pentru citire.
Parametri
| Parametru | Descriere |
|---|---|
pereche / alt |
Ce se adaugă: o pereche, un map sau o listă de perechi. |
cheie / chei |
Ce chei se scot. |
Ce returnează
Un Map<K, V> nou.
Exemple
Exemplul 1: Setări implicite și setări ale utilizatorului
Unim setările implicite cu ale utilizatorului; la cheile comune câștigă utilizatorul (map-ul din dreapta).
fun main() {
val implicite = mapOf("limba" to "ro", "tema" to "luminoasă", "font" to "14")
val utilizator = mapOf("tema" to "întunecată")
val finale = implicite + utilizator
println(finale)
println(finale + ("font" to "16"))
}
Rezultat
{limba=ro, tema=întunecată, font=14}
{limba=ro, tema=întunecată, font=16}
Exemplul 2: Scoaterea cheilor
Scoatem o cheie, apoi o listă de chei. Map-ul original rămâne cu toate intrările.
fun main() {
val profil = mapOf("nume" to "Ana", "email" to "ana@exemplu.ro", "parola" to "secret", "telefon" to "0722")
println(profil - "parola")
println(profil - listOf("parola", "telefon"))
println(profil.size)
}
Rezultat
{nume=Ana, email=ana@exemplu.ro, telefon=0722}
{nume=Ana, email=ana@exemplu.ro}
4
Greșeli frecvente
- Scrii
map + k to vfără paranteze:toare prioritate mai mică decât+, deci se calculează(map + k) to v, care nu compilează. Scriemap + (k to v). - Folosești
+într-o buclă pentru multe intrări: fiecare pas copiază tot map-ul. Folosește unMutableMapcuput.
Comenzi înrudite
Iterable.plus: Operatorii + și – pe colecții: creează o listă nouă cu elemente adăugate sau scoase, fără să schimbe originalul.MutableMap.put: Adaugă o cheie cu valoarea ei sau înlocuiește valoarea unei chei existente; putAll copiază toate intrările altui map.MutableMap.remove: Șterge o cheie (și valoarea ei) din map și întoarce valoarea ștearsă sau null dacă cheia nu exista.mapOf: Creează un map (dicționar cheie → valoare) din perechi scrise cu „to”; mutableMapOf dă unul pe care îl poți modifica.