Ce face MutableMap.remove
remove(k) șterge intrarea cu cheia k și întoarce valoarea pe care o avea, ca să o poți folosi. Dacă cheia nu exista, întoarce null și nu se întâmplă nimic altceva.
Varianta remove(k, v) șterge doar dacă cheia are exact valoarea v și întoarce true/false. Operatorul map -= k șterge o cheie fără să întoarcă nimic.
Pentru a șterge mai multe intrări după o condiție, folosește map.entries.removeAll { ... } sau map.keys.removeAll { ... }.
Parametri
| Parametru | Descriere |
|---|---|
cheie |
Cheia de șters. |
valoare |
Opțional: se șterge doar dacă valoarea curentă este aceasta. |
Ce returnează
Valoarea ștearsă sau null (la remove(k, v): true/false).
Exemple
Exemplul 1: Ștergerea unui produs din coș
Primul apel întoarce cantitatea ștearsă. Al doilea nu găsește cheia și întoarce null.
fun main() {
val cos = mutableMapOf("pâine" to 2, "lapte" to 1, "mere" to 6)
val scos = cos.remove("lapte")
println("Am scos laptele, cantitate: $scos")
println(cos.remove("cafea"))
cos -= "mere"
println(cos)
}
Rezultat
Am scos laptele, cantitate: 1
null
{pâine=2}
Exemplul 2: remove cu valoare și ștergere după condiție
Rezervarea se anulează doar dacă locul aparține încă Anei. Apoi ștergem toate locurile libere (valoare goală).
fun main() {
val locuri = mutableMapOf("A1" to "Ana", "A2" to "", "A3" to "Ion", "A4" to "")
println(locuri.remove("A3", "Ana"))
println(locuri.remove("A1", "Ana"))
locuri.entries.removeAll { it.value.isEmpty() }
println(locuri)
}
Rezultat
false
true
{A3=Ion}
Greșeli frecvente
- Ștergi chei într-o buclă
for ((k, v) in map):ConcurrentModificationException. Foloseșteentries.removeAll { ... }. - Scrii
map.remove(k)!!fără să fii sigur că cheia există:NullPointerException.
Comenzi înrudite
MutableMap.put: Adaugă o cheie cu valoarea ei sau înlocuiește valoarea unei chei existente; putAll copiază toate intrările altui map.Map.plus: Operatorii + și – pe map-uri: creează un map nou cu intrări adăugate sau cu chei scoase, fără să schimbe originalul.MutableCollection.removeAll: Șterge pe loc toate elementele care îndeplinesc o condiție (removeAll, removeIf) sau păstrează doar pe cele care o îndeplinesc (retainAll).Map.keys: Proprietățile keys, values și entries dau cheile, valorile și perechile cheie–valoare ale unui map.