Sobes.tech
Junior — Middle

Можете ли објаснити унутрашњу структуру и механизам рада хеш табеле у Јави?

sobes.tech АИ

Одговор од АИ

Hash tabela u Javi (na primer, HashMap) je struktura podataka koja čuva parove ključ-vrednost i omogućava brz pristup putem ključa.

Unutrašnja struktura:

  • Osnova je niz korpi (kesa).
  • Svaka kesa sadrži ili null, ili povezanu listu (ili drvo, ako ima mnogo elemenata) elemenata sa istim hash kodom modulo veličine niza.

Mehanizam rada:

  1. Pri dodavanju elementa, računa se hash kod ključa i određuje indeks kese.
  2. Ako je kesa prazna, element se smešta tamo.
  3. Ako je kesa zauzeta, traži se u povezanoj listi (ili drvetu) da li već postoji taj ključ:
    • Ako je ključ pronađen, vrednost se ažurira.
    • Ako ne, element se dodaje u listu.
  4. Kada se dostigne određeni prag popunjenosti, vrši se proširenje niza (rehash) radi očuvanja performansi.

Ovaj pristup obezbeđuje prosečnu složenost operacija umetanja, pretraživanja i brisanja blizu O(1).

Primer upotrebe:

Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // brz pristup putem ključa