Junior
Povězte mi o kolekci Map v Javě a jejích vlastnostech.
sobes.tech AI
Odpověď od AI
Map — je rozhraní v Java Collection Framework, které představuje kolekci párů "klíč-hodnota". Klíče jsou jedinečné, zatímco hodnoty se mohou opakovat.
Hlavní vlastnosti:
- Klíč se používá k přístupu k odpovídající hodnotě.
- Stejný klíč nelze přidat dvakrát. Při pokusu o přidání existujícího klíče je stará hodnota nahrazena novou.
Mapnezdědí od rozhraníCollection. Má vlastní metody pro práci s páry "klíč-hodnota".- Pořadí párů "klíč-hodnota" se může lišit v závislosti na konkrétní implementaci.
Populární implementace Map:
HashMap: Nezaručuje pořadí prvků. Poskytuje vysoký výkon pro většinu operací (vkládání, získávání, mazání) při absenci kolizí hashů.LinkedHashMap: Ukládá prvky v pořadí jejich přidání (nebo v pořadí přístupu, pokud je správně nakonfigurováno).TreeMap: Ukládá prvky v seřazeném pořadí podle klíče (přirozené pořadí nebo poskytnuté komparátorem). Poskytuje logaritmický čas pro většinu operací.
Příklady metod:
// Získat hodnotu podle klíče
Object value = map.get(key);
// Přidat nebo aktualizovat pár klíč-hodnota
Object oldValue = map.put(key, value);
// Odstranit pár podle klíče
Object removedValue = map.remove(key);
// Zkontrolovat, zda klíč existuje
boolean containsKey = map.containsKey(key);
// Zkontrolovat, zda hodnota existuje
boolean containsValue = map.containsValue(value);
// Získat sadu všech klíčů
Set<KeyType> keys = map.keySet();
// Získat kolekci všech hodnot
Collection<ValueType> values = map.values();
// Získat sadu všech záznamů (párů klíč-hodnota)
Set<Map.Entry<KeyType, ValueType>> entries = map.entrySet();
// Získat velikost Mapy
int size = map.size();
Použití Map.Entry při iteraci:
// Iterace přes sadu Entry
for (Map.Entry<KeyType, ValueType> entry : map.entrySet()) {
KeyType key = entry.getKey();
ValueType value = entry.getValue();
// ...
}