39. Что будет, если переопределить equals() не переопределяя hashCode()? Проблемы?

39. Что будет, если переопределить equals() не переопределяя hashCode()? Проблемы?

UNKNOWN

Классы и методы, которые используют правила этого контракта могут работать некорректно.

Так для HashMap это может привести к тому, что пара «ключ-значение», которая была в нее помещена при использовании нового экземпляра ключа не будет в ней найдена. В HashSet при добавлении объект сначала сравнивается хэш добавляемого и существующие (быстрая проверка очень экономит время), если хэш разный – то дальше сравнивается по equals.


Предыдущий вопрос: 38. Правила переопределения equals()

Следующий вопрос: 40. Какой контракт между hashCode() и equals()?

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page