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

Может ли у двух разных объектов быть одинаковый HashCode

Да, у двух разных объектов может быть одинаковый hashCode(). Это называется коллизией.

Почему так происходит:

  • hashCode() возвращает int, а количество возможных объектов в Java гораздо больше (2^32 вариантов для int).
  • По контракту equals() и hashCode(), если объекты равны (equals()), их hashCode() должны совпадать. Обратное неверно.

Пример:

java
String s1 = "FB";
String s2 = "Ea";
System.out.println(s1.hashCode()); // 2236
System.out.println(s2.hashCode()); // 2236
System.out.println(s1.equals(s2)); // false

Важно: Коллизии снижают производительность хэш-коллекций (HashMap, HashSet), но не нарушают их работу, так как используется equals() для точного сравнения.

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

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

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

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