Junior — Middle
Можете ли да обясните как се осъществява достъп до елемент в структурата HashMap?
sobes.tech AI
Отговор от AI
В Java HashMap е реализиран на базата на масив от кошници, всяка от които съдържа свързан списък или дърво (от Java 8 нататък) от елементи с еднакъв хеш код.
Достъпът до елемент става по следния начин:
- Изчислява се хеш кодът на ключа чрез
hashCode(). - Хеш кодът се преобразува в индекс на масива с кошници (обикновено чрез операцията
hash & (capacity - 1)). - В избраната кошница се търси елемент с ключ, равен на търсения (чрез
equals()). - Ако е намерен, се връща свързаната с него стойност.
Пример:
HashMap<String, Integer> map = new HashMap<>();
map.put("key", 42);
Integer value = map.get("key"); // изчислява се hash, избира се кошница, търси се елемент
По този начин, достъпът до елемент е изчисляване на хеша, избор на кошница и търсене по ключ вътре в кошницата.