Junior — Middle
Kā ir uzbūvēta HashMap datu struktūra un kā tā nodrošina ātru piekļuvi elementiem?
sobes.tech AI
Atbilde no AI
HashMap в Java реализован на основе массива бакетов, каждый из которых содержит связный список или дерево (с Java 8) элементов с одинаковым хеш-кодом.
Как это работает:
- Для ключа вычисляется хеш-код с помощью метода
hashCode(). - Хеш-код преобразуется в индекс массива (бакета) с помощью операции взятия остатка или битовых операций.
- В бакете происходит поиск элемента с совпадающим ключом (через
equals()).
Благодаря этому доступ к элементам происходит за амортизированное время O(1), так как поиск ограничен небольшим числом элементов в бакете.
Пример:
Map<String, Integer> map = new HashMap<>();
map.put("key", 42);
int value = map.get("key"); // Быстрый доступ по ключу