Junior — Middle
Ar galite paaiškinti, kaip pasiekti elementą HashMap struktūroje?
sobes.tech AI
Atsakymas iš AI
Java HashMap yra įgyvendinamas remiantis baito masyvu, kurio kiekvienas baitas gali turėti susietą sąrašą arba medį (nuo Java 8) elementų su tuo pačiu hash kodu.
Prieiga prie elemento vyksta taip:
- Hash kodo reikšmė apskaičiuojama naudojant
hashCode()metodą. - Hash kodas paverčiamas į baito masyvo indeksą (dažniausiai naudojant operaciją
hash & (capacity - 1)). - Pasirinktame baitelyje ieškoma elemento su tokiu pačiu raktu (lyginant
equals()metodu). - Jei elementas rastas, grąžinama su juo susieta reikšmė.
Pavyzdys:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // skaičiuojamas hash, pasirenkamas baitelis, ieškoma elemento
Taip prieiga prie elemento susideda iš hash skaičiavimo, baitelio pasirinkimo ir paieškos pagal raktą baitelyje.