Senior
41
Что случится с HashMap, если hashCode всегда возвращает константу?
Companies where asked
Answer from AI
sobes.tech AI
Если метод hashCode() всегда возвращает одну и ту же константу, то все объекты будут попадать в одну и ту же корзину (bucket) внутри HashMap. Это приведёт к тому, что производительность операций вставки, поиска и удаления будет деградировать с амортизированного O(1) до O(n), так как все элементы будут храниться в одном списке или дереве внутри этой корзины.
Пример:
class BadHash {
@Override
public int hashCode() {
return 42; // константа
}
@Override
public boolean equals(Object obj) {
return this == obj;
}
}
Использование таких объектов в HashMap приведёт к сильному ухудшению производительности из-за коллизий.