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.
Mapnezdedí od rozhraniaCollection. 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();
// ...
}