Sobes.tech
Junior

Porozprávajte o kolekcii Map v Jave a jej vlastnostiach.

sobes.tech AI

Odpoveď od AI

Map — je rozhranie v Java Collection Framework, ktoré predstavuje kolekciu dvojíc "kľúč-hodnota". Kľúče sú jedinečné, zatiaľ čo hodnoty sa môžu opakovať.

Hlavné vlastnosti:

  • Kľúč sa používa na prístup k príslušnej hodnote.
  • Ten istý kľúč nemôže byť pridaný dvakrát. Pri pokuse o pridanie existujúceho kľúča sa stará hodnota nahradí novou.
  • Map nezdedí od rozhrania Collection. Má vlastné metódy na prácu s dvojicami "kľúč-hodnota".
  • Poradie dvojíc "kľúč-hodnota" sa môže líšiť v závislosti od konkrétnej implementácie.

Populárne implementácie Map:

  • HashMap: Nezaručuje poradie prvkov. Poskytuje vysoký výkon pre väčšinu operácií (vkladanie, získavanie, mazanie) pri absencii konfliktov hashov.
  • LinkedHashMap: Ukladá prvky v poradí ich pridania (alebo v poradí prístupu, ak je správne nakonfigurované).
  • TreeMap: Ukladá prvky v zoradenom poradí podľa kľúča (prirodzené poradie alebo poskytnuté comparatorom). Poskytuje logaritmický čas pre väčšinu operácií.

Príklady metód:

// Získať hodnotu podľa kľúča
Object value = map.get(key);

// Pridať alebo aktualizovať pár kľúč-hodnota
Object oldValue = map.put(key, value);

// Odstrániť pár podľa kľúča
Object removedValue = map.remove(key);

// Skontrolovať, či kľúč existuje
boolean containsKey = map.containsKey(key);

// Skontrolovať, či hodnota existuje
boolean containsValue = map.containsValue(value);

// Získať množinu všetkých kľúčov
Set<KeyType> keys = map.keySet();

// Získať kolekciu všetkých hodnôt
Collection<ValueType> values = map.values();

// Získať množinu všetkých záznamov (párov kľúč-hodnota)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();

// Získať veľkosť Mapy
int size = map.size();

Použitie Map.Entry pri iterácii:

// Iterácia cez Entry set
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
    KeyType key = entry.getKey();
    ValueType value = entry.getValue();
    // ...
}