Junior — Middle
Vai jūs varētu izskaidrot HashSet datu struktūras elementu pievienošanas mehānismu?
sobes.tech AI
Atbilde no AI
Java (un Android) HashSet tiek balstīts uz HashMap. Kad pievienojat elementu HashSet, notiek šādi:
- Elementa hash kods tiek aprēķināts ar metodi
hashCode(). - Pamatojoties uz hash kodu, tiek noteikts iekšējā masīva (bucket) indekss.
- Ja bucket jau satur elementus, tiek veikta
equals()salīdzināšana, lai pārbaudītu, vai tāds elements jau eksistē (lai novērstu dublikātus). - Ja elements nav, tas tiek pievienots bucket.
Šādā veidā HashSet nodrošina elementu unikālitāti un ātru piekļuvi, izmantojot hash funkciju.
Pievienošanas piemērs:
HashSet<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // netiks pievienots, jo "apple" jau ir