Mapa jako struktura danych

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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.