Ce face Map.containsKey
containsKey(cheie) returnează true dacă map-ul are cheia, chiar dacă valoarea ei este null. Este rapidă, pentru că map-ul caută direct după cheie.
containsValue(valoare) caută printre valori. Trebuie să le verifice pe rând, deci pe un map mare este mai lentă decât containsKey.
Parametri
| Parametru | Descriere |
|---|---|
key |
Cheia căutată. |
value |
Valoarea căutată (comparată cu ==). |
Ce returnează
true sau false.
Exemple
Exemplul 1: Există utilizatorul?
void main() {
final varste = {'ana': 21, 'mihai': 34};
for (final nume in ['ana', 'ioana']) {
if (varste.containsKey(nume)) {
print('$nume are ${varste[nume]} ani');
} else {
print('$nume nu este înregistrat');
}
}
print('Are cineva 34 de ani? ${varste.containsValue(34)}');
print('Are cineva 40 de ani? ${varste.containsValue(40)}');
}
Rezultat
ana are 21 ani
ioana nu este înregistrat
Are cineva 34 de ani? true
Are cineva 40 de ani? false
Exemplul 2: Cheie cu valoarea null
map['x'] == null nu face diferența între „cheie lipsă” și „cheie cu valoarea null”. containsKey face.
void main() {
final telefoane = <String, String?>{'Ana': '0722 111 222', 'Radu': null};
for (final nume in ['Radu', 'Elena']) {
print('$nume: valoare = ${telefoane[nume]}, '
'există = ${telefoane.containsKey(nume)}');
}
}
Rezultat
Radu: valoare = null, există = true
Elena: valoare = null, există = false
Greșeli frecvente
- Folosești
containsValueîntr-o buclă pe un map mare. Fiecare apel parcurge toate valorile; dacă ai nevoie des, păstrează un al doilea map sau unSetcu valorile.
Comenzi înrudite
Map.operator[]: map[cheie] citește valoarea unei chei (sau null), iar map[cheie] = valoare adaugă sau înlocuiește o pereche.Map.putIfAbsent: Returnează valoarea unei chei; dacă cheia lipsește, o calculează cu funcția dată, o salvează și o returnează.Set.contains: contains verifică rapid dacă un element este în set; containsAll verifică dacă sunt toate elementele unei colecții.Iterable.contains: Verifică dacă un element egal (==) cu valoarea dată există în colecție.