Junior — Middle
Можете ли да обясните вътрешната структура и механизма на работа на хеш таблицата в Java?
sobes.tech AI
Отговор от AI
Хеш таблица в Java (например, HashMap) е структура от данни, която съхранява двойки ключ-стойност и осигурява бърз достъп чрез ключ.
Вътрешна структура:
- Основата е масив от кофи (кошници).
- Всяка кофичка съдържа или
null, или свързан списък (или дърво, ако има много елементи) от елементи с еднакъв хеш код по модул на размера на масива.
Механизъм на работа:
- При добавяне на елемент се изчислява хеш кодът на ключа и се определя индексът на кофичката.
- Ако кофичката е празна, елементът се поставя там.
- Ако е заета, се търси в свързания списък (или дърво) дали ключът вече съществува:
- Ако е намерен, стойността се актуализира.
- Ако не, елементът се добавя към списъка.
- Когато достигне определен праг на запълване, се извършва разширяване на масива (rehash), за да се запази производителността.
Този подход осигурява средна сложност на операциите по вмъкване, търсене и изтриване, близка до O(1).
Пример за използване:
Map<String, Integer> map = new HashMap<>();
map.put("key1", 100);
Integer value = map.get("key1"); // бърз достъп по ключ