Junior — Middle
Puteți explica structura internă și mecanismul de funcționare al tabelului hash în Java?
sobes.tech AI
Răspuns de la AI
O tabelă hash în Java (de exemplu, HashMap) este o structură de date care stochează perechi cheie-valoare și asigură acces rapid pe baza cheii.
Structura internă:
- Baza este un array de coșuri (găleți).
- Fiecare găleată conține fie
null, fie o listă legată (sau un copac, dacă sunt multe elemente) de elemente cu același cod hash modulo dimensiunea array-ului.
Mecanismul de funcționare:
- La adăugarea unui element, se calculează codul hash al cheii și se determină indexul găleții.
- Dacă găleata este goală, elementul se plasează acolo.
- Dacă găleata este ocupată, se caută în lista legată (sau copac) dacă cheia există deja:
- Dacă cheia este găsită, valoarea se actualizează.
- Dacă nu, elementul se adaugă la listă.
- Când se atinge un anumit prag de umplere, se extinde array-ul (rehash) pentru a menține performanța.
Această abordare asigură o complexitate medie a operațiilor de inserare, căutare și ștergere apropiată de O(1).
Exemplu de utilizare:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // acces rapid după cheie