Sobes.tech
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.
  • Map nezdě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();
    // ...
}