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