Ответ
HashMap хранит пары ключ-значение в "корзинах" (buckets) на основе хэш-кода ключа. При добавлении элемента:
- Вычисляется хэш ключа через
hashCode() - По хэшу определяется индекс корзины:
index = hash & (capacity - 1) - Если корзина пуста - элемент добавляется
- При коллизии (одинаковый хэш) используется цепочка (в Java 8 при длине >8 переходит на красно-черное дерево)
Пример:
HashMap<String, Integer> map = new HashMap<>();
map.put("apple", 1); // hash("apple") -> индекс корзины
map.get("apple"); // быстрый доступ по хэшу
Особенности:
- Не гарантирует порядок
- Разрешает один null-ключ
- Потоконебезопасен (используйте ConcurrentHashMap)
- Начальная емкость 16, load factor 0.75 (автоматическое расширение)
Видео-ответы
▶
Мок-собеседование по Java: разбор вопросов, паттерны, алгоритмы и лайвкодинг
▶
Открытое собеседование в МТС Диджитал на позицию Middle Java
▶
Java middle+ mock interview
▶
Собеседование на Java-разработчика, вопросы для подготовки: finalize method, ArrayList, REST и SOAP
▶
Как пройти собеседование на Java разработчика: вопросы, ответы, разбор ошибок
▶
Техническое собеседование Java Developer | Топ вопросы Java | Подготовка к интервью
▶
Публичное собеседование PHP-разработчика на Неделе победителей рейтинга Хабр Карьеры
▶
Java Собеседование | Backend-Mock интервью
▶
Техническое интервью Java Developer - Алексей Гумен
▶
Тестовое собеседование Java разработчика #14 - Владимир Дубенко