Mapa to struktura danych przechowująca pary klucz–wartość. Oznacza to, że do każdej wartości przypisany jest unikalny klucz, za pomocą którego można szybko odszukać dane. W Javie popularną implementacją mapy jest HashMap.
Jak działa mapa?
Zamiast szukać elementu po kolei, jak często dzieje się w zwykłej liście, mapa pozwala pobrać wartość bezpośrednio po kluczu. Przykład: numer PESEL może być kluczem, a dane osoby wartością.
Map<String, Integer> punkty = new HashMap<>();
punkty.put("Jan", 15);
punkty.put("Anna", 20);
int wynik = punkty.get("Anna");
W tym przykładzie kluczem jest imię, a wartością liczba punktów.
Najważniejsza korzyść
Główną zaletą map, szczególnie HashMap, jest szybki dostęp do elementów przy użyciu klucza. Średnia złożoność operacji put, get i remove wynosi zwykle O(1), czyli czas dostępu jest bardzo krótki i nie zależy znacząco od liczby elementów.
Czego mapa nie gwarantuje?
Mapa nie zawsze:
- zajmuje mniej pamięci niż tablica,
- przechowuje elementy w kolejności dodania,
- sortuje dane automatycznie,
- wymaga znajomości rozmiaru danych przed kompilacją.
Jeśli potrzebne jest sortowanie po kluczach, w Javie można użyć np. TreeMap, a nie zwykłej HashMap.
Kiedy używać mapy?
Mapy warto stosować, gdy dane są naturalnie identyfikowane przez klucz, np. login użytkownika, ID produktu, kod pocztowy, numer indeksu albo nazwa ustawienia w konfiguracji.