Junior
Vorbiți despre colecția Map în Java și caracteristicile sale.
sobes.tech AI
Răspuns de la AI
Map — este o interfață în Java Collection Framework care reprezintă o colecție de perechi "cheie-valoare". Cheile sunt unice, iar valorile pot fi repetate.
Caracteristici principale:
- Cheia este utilizată pentru a accesa valoarea corespunzătoare.
- Aceeași cheie nu poate fi adăugată de două ori. În cazul în care se încearcă adăugarea unei chei existente, valoarea veche este înlocuită cu cea nouă.
Mapnu moștenește din interfațaCollection. Are propriile metode pentru lucrul cu perechi "cheie-valoare".- Ordinea perechilor "cheie-valoare" poate varia în funcție de implementarea specifică.
Implementări populare ale Map:
HashMap: Nu garantează ordinea elementelor. Oferă performanță ridicată pentru cele mai multe operații (inserare, obținere, ștergere) în absența conflictelor de hash.LinkedHashMap: Stochează elementele în ordinea în care au fost adăugate (sau în ordinea accesului, dacă este configurat corespunzător).TreeMap: Stochează elementele în ordine sortată după cheie (ordine naturală sau furnizată de un comparator). Oferă timp logaritmic pentru cele mai multe operații.
Exemple de metode:
// Obține valoarea după cheie
Object value = map.get(key);
// Adaugă sau actualizează perechea cheie-valoare
Object oldValue = map.put(key, value);
// Șterge perechea după cheie
Object removedValue = map.remove(key);
// Verifică dacă o cheie există
boolean containsKey = map.containsKey(key);
// Verifică dacă o valoare există
boolean containsValue = map.containsValue(value);
// Obține setul tuturor cheilor
Set<KeyType> keys = map.keySet();
// Obține colecția tuturor valorilor
Collection<ValueType> values = map.values();
// Obține setul tuturor intrărilor (perechi cheie-valoare)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();
// Obține dimensiunea Map-ului
int size = map.size();
Utilizarea Map.Entry în timpul iterării:
// Iterare pe setul de intrări
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
KeyType key = entry.getKey();
ValueType value = entry.getValue();
// ...
}