Map.fromEntries în Dart

Construiește un map dintr-o succesiune de perechi MapEntry, de exemplu entries filtrate sau sortate.

Sintaxă
factory Map<K, V>.fromEntries(Iterable<MapEntry<K, V>> entries)

Ce face Map.fromEntries

Map.fromEntries primește un Iterable de MapEntry și le pune, în ordine, într-un map nou. Dacă o cheie apare de mai multe ori, rămâne ultima valoare.

Este perechea naturală a lui entries: iei perechile, le filtrezi sau le sortezi ca pe o listă, apoi faci din nou un map.

Parametri

Parametru Descriere
entries Perechile din care se construiește map-ul.

Ce returnează

Un Map nou, care păstrează ordinea perechilor.

Exemple

Exemplul 1: Map sortat după valoare

void main() {
  final note = {'Ana': 8, 'Mihai': 10, 'Ioana': 9, 'Radu': 7};
  final sortate = note.entries.toList()..sort((a, b) => b.value.compareTo(a.value));
  final clasament = Map.fromEntries(sortate);
  print(clasament);
}

Rezultat

{Mihai: 10, Ioana: 9, Ana: 8, Radu: 7}

Exemplul 2: Filtrare fără a modifica originalul

void main() {
  final temperaturi = {'Iași': 31, 'Cluj': 26, 'Constanța': 33, 'Brașov': 24};
  final canicula = Map.fromEntries(temperaturi.entries.where((e) => e.value > 30));
  print(canicula);
  print(temperaturi.length);
}

Rezultat

{Iași: 31, Constanța: 33}
4

Greșeli frecvente

  • Dai o listă de liste sau de records în loc de MapEntry. Transformă-le întâi: perechi.map((p) => MapEntry(p.$1, p.$2)).

Comenzi înrudite

  • MapEntry: O pereche cheie–valoare: ce primești din map.entries și ce returnezi din Map.map.
  • Map.keys: keys, values și entries dau cheile, valorile sau perechile unui map, ca Iterable, în ordinea din map.
  • Map.fromIterable: fromIterable face cheile și valorile din aceleași elemente; fromIterables lipește o listă de chei de o listă de valori.
  • Map.addAll: addAll copiază toate perechile din alt map; addEntries adaugă perechi MapEntry dintr-un Iterable.