Junior — Middle
Czy możesz wyjaśnić wewnętrzną strukturę i mechanizm działania tablicy haszującej w Java?
sobes.tech AI
Odpowiedź od AI
Tablica haszowa w Java (np. HashMap) to struktura danych, która przechowuje pary klucz-wartość i zapewnia szybki dostęp po kluczu.
Struktura wewnętrzna:
- Podstawą jest tablica kubełków (koszyków).
- Każdy kubełek zawiera albo
null, albo powiązaną listę (lub drzewo, jeśli jest dużo elementów) elementów z tym samym kodem hash modulo rozmiaru tablicy.
Mechanizm działania:
- Przy dodawaniu elementu oblicza się kod hash klucza i na jego podstawie określa indeks kubełka.
- Jeśli kubełek jest pusty, element jest tam umieszczany.
- Jeśli kubełek jest zajęty, przeszukuje się powiązaną listę (lub drzewo) w celu sprawdzenia, czy klucz już istnieje:
- Jeśli klucz zostanie znaleziony, wartość jest aktualizowana.
- Jeśli nie, element jest dodawany do listy.
- Po osiągnięciu określonego progu wypełnienia, następuje rozszerzenie tablicy (rehash), aby utrzymać wydajność.
Takie podejście zapewnia średnią złożoność operacji wstawiania, wyszukiwania i usuwania bliską O(1).
Przykład użycia:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // szybki dostęp po kluczu