Ce face HashMap
HashMap caută cheile la fel de rapid ca map-ul implicit, dar nu ține minte ordinea inserării: când îl parcurgi, cheile pot apărea în orice ordine, iar ordinea se poate schimba după adăugări. Consumă ceva mai puțină memorie.
Folosește-l când doar cauți după cheie și nu afișezi niciodată elementele în ordine. Dacă trebuie să le afișezi, sortează cheile întâi.
Parametri
| Parametru | Descriere |
|---|---|
equals / hashCode / isValidKey |
Opțional: regula de egalitate a cheilor, ca la LinkedHashMap. |
other |
Pentru HashMap.of: map-ul copiat. |
Ce returnează
Un HashMap gol sau cu perechile copiate.
Exemple
Exemplul 1: Căutare după cod, afișare sortată
Ordinea internă a unui HashMap nu este garantată, așa că sortăm cheile înainte de afișare.
import 'dart:collection';
void main() {
final judete = HashMap<String, String>();
judete['IS'] = 'Iași';
judete['CJ'] = 'Cluj';
judete['BV'] = 'Brașov';
judete['TM'] = 'Timiș';
print(judete['CJ']);
final coduri = judete.keys.toList()..sort();
for (final c in coduri) {
print('$c = ${judete[c]}');
}
}
Rezultat
Cluj
BV = Brașov
CJ = Cluj
IS = Iași
TM = Timiș
Exemplul 2: Frecvența literelor
import 'dart:collection';
void main() {
final frecventa = HashMap<String, int>();
for (final litera in 'mississippi'.split('')) {
frecventa.update(litera, (n) => n + 1, ifAbsent: () => 1);
}
final ordonat = frecventa.entries.toList()..sort((a, b) => a.key.compareTo(b.key));
print(ordonat.map((e) => '${e.key}=${e.value}').join(', '));
}
Rezultat
i=4, m=1, p=2, s=4
Greșeli frecvente
- Afișezi un
HashMapdirect cuprintși te bazezi pe ordinea afișată. Ordinea nu este garantată; sortează cheile sau folosește map-ul implicit.
Comenzi înrudite
Map: Colecție de perechi cheie–valoare: cauți rapid o valoare după cheia ei (nume, cod, oraș).LinkedHashMap: Map care păstrează ordinea inserării cheilor; este tipul implicit al map-urilor scrise cu acolade.SplayTreeMap: Map care ține cheile mereu sortate; parcurgerea și print dau cheile în ordine crescătoare.HashSet: Set bazat pe tabel hash, fără ordine garantată a elementelor; potrivit doar pentru verificări de apartenență.