Встречается на 2% собеседований по Java

Почему сложность поиска в HashMap O(1)

В идеальном случае HashMap обеспечивает O(1) для операций get() и put(), так как использует хеш-функцию для вычисления индекса корзины (bucket). Однако есть нюансы:

  1. Коллизии - если разные ключи попадают в одну корзину, сложность становится O(n) для цепочки (в случае LinkedList) или O(log n) для TreeMap (в Java 8+ при большом количестве коллизий).
  1. Рехеширование - при достижении load factor (по умолчанию 0.75) HashMap увеличивает capacity, что требует перераспределения элементов (O(n) операция).

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("key", 1); // O(1) в среднем
int value = map.get("key"); // O(1) в среднем

O(1) - это амортизированная сложность при хорошей хеш-функции и равномерном распределении ключей. В худшем случае (все ключи в одной корзине) сложность деградирует до O(n).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы