Ce face MapEntry
MapEntry ține o cheie (key) și o valoare (value). Ambele câmpuri sunt final: o pereche nu se modifică după creare; ca să schimbi valoarea din map, scrii în map, nu în pereche.
Îl întâlnești în map.entries, Map.fromEntries, addEntries și Map.map. Din Dart 3 poți despacheta o pereche cu un pattern: final MapEntry(:key, :value) = e;.
Parametri
| Parametru | Descriere |
|---|---|
key |
Cheia perechii. |
value |
Valoarea perechii. |
Ce returnează
Un obiect nemodificabil cu câmpurile key și value; toString() dă MapEntry(cheie: valoare).
Exemple
Exemplul 1: Crearea și citirea unei perechi
void main() {
const pereche = MapEntry('Iași', 271692);
print(pereche);
print('cheie: ${pereche.key}, valoare: ${pereche.value}');
final MapEntry(:key, :value) = pereche;
print('$key are $value locuitori');
}
Rezultat
MapEntry(Iași: 271692)
cheie: Iași, valoare: 271692
Iași are 271692 locuitori
Exemplul 2: Cea mai mare valoare dintr-un map
reduce pe entries păstrează perechea cu valoarea maximă, deci afli și cheia ei.
void main() {
final vanzari = {'Ana': 3200, 'Mihai': 4100, 'Ioana': 3900};
final maxim = vanzari.entries.reduce((a, b) => a.value >= b.value ? a : b);
print('Cel mai bun vânzător: ${maxim.key} (${maxim.value} lei)');
}
Rezultat
Cel mai bun vânzător: Mihai (4100 lei)
Greșeli frecvente
- Încerci
e.value = 5în timp ce parcurgientries. Câmpurile suntfinal; scriemap[e.key] = 5(după buclă sau cuupdateAll).
Comenzi înrudite
Map.keys: keys, values și entries dau cheile, valorile sau perechile unui map, ca Iterable, în ordinea din map.Map.fromEntries: Construiește un map dintr-o succesiune de perechi MapEntry, de exemplu entries filtrate sau sortate.Map.map: Creează un map nou transformând fiecare pereche într-o pereche nouă, cu alte chei sau alte valori.Map.addAll: addAll copiază toate perechile din alt map; addEntries adaugă perechi MapEntry dintr-un Iterable.records: Grupuri de valori anonime și imutabile, de forma (a, b) sau (nume: a), ideale pentru a întoarce mai multe valori.