Junior — Middle
Môžete vysvetliť mechanizmus pridávania prvkov do dátovej štruktúry HashSet?
sobes.tech AI
Odpoveď od AI
HashSet v Javi (a na Androidu) je implementiran na podlagi HashMap. Ko dodate element v HashSet, se zgodi naslednje:
- Koda za hash elementa se izračuna z metodo
hashCode(). - Na podlagi hash kode se določi indeks koša (bucket) v notranjem nizu.
- Če v košu že obstajajo elementi, se izvede primerjava z
equals(), da se preveri, ali tak element že obstaja (za preprečevanje podvajanja). - Če element ne obstaja, se doda v koš.
Na ta način HashSet zagotavlja edinstvenost elementov in hiter dostop preko hashiranja.
Primer dodajanja:
HashSet<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // ne bo dodano, ker "apple" že obstaja