Какой алгоритм получения элемента из HashMap

«Какой алгоритм получения элемента из HashMap» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В HashMap элементы получаются по ключу через метод get(). Алгоритм работает так:

  1. Вычисляется хеш ключа (key.hashCode())
  2. Находится бакет (корзина) по формуле hash & (capacity - 1)
  3. В бакете ищется элемент с совпадающим ключом (через equals())

Пример:

val map = hashMapOf("a" to 1, "b" to 2)
val value = map.get("a") // 1

Сложность в среднем O(1), но может деградировать до O(n) при коллизиях. Для корректной работы важно, чтобы ключи правильно реализовывали hashCode() и equals().