Встречается на собеседованиях • сегодня

Как будет работать HashMap, при возврате hashCode константного числа

HashMap будет работать крайне неэффективно, если все объекты возвращают одинаковый hashCode.

В этом случае все элементы будут помещаться в одну корзину (bucket), превращая HashMap в связный список. Это приведет к:

  • Потере преимущества O(1) для операций get/put
  • Деградации до O(n) для поиска, так как придется перебирать все элементы в цепочке

Пример:

java
class BadKey {
    @Override
    public int hashCode() {
        return 1; // Всегда одно и то же значение
    }
}

// Использование:
Map<BadKey, String> map = new HashMap<>();
map.put(new BadKey(), "value1"); // Все попадут в одну корзину
map.put(new BadKey(), "value2");

Для нормальной работы HashMap важно, чтобы hashCode:

  1. Равные объекты возвращали одинаковый hashCode
  2. Разные объекты по возможности возвращали разные hashCode
  3. Распределение было равномерным
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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