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:
- Pri dodavanju elementa, računa se hash kod ključa i određuje indeks kese.
- Ako je kesa prazna, element se smešta tamo.
- 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.
- 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