Sobes.tech
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:

  1. Koda za hash elementa se izračuna z metodo hashCode().
  2. Na podlagi hash kode se določi indeks koša (bucket) v notranjem nizu.
  3. Če v košu že obstajajo elementi, se izvede primerjava z equals(), da se preveri, ali tak element že obstaja (za preprečevanje podvajanja).
  4. Č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