Встречается на собеседованиях • сегодня
Почему при идентичном hashCode объектов, они могут отличаться по equals
Хэш-код в Java — это целое число, используемое для быстрого сравнения объектов в хэш-таблицах (например, HashMap). Однако, разные объекты могут иметь одинаковый hashCode (это называется коллизией), но при этом не быть равными по equals().
Пример:
java
String a = "FB";
String b = "Ea";
System.out.println(a.hashCode()); // 2236
System.out.println(b.hashCode()); // 2236
System.out.println(a.equals(b)); // falseПричина:
hashCode()— это не уникальный идентификатор, а числовое представление объекта, вычисляемое по определенному алгоритму.equals()— строгое сравнение всех значимых полей объекта.
Вывод:
Если hashCode() совпадает, это не гарантирует равенство объектов. Но если equals() возвращает true, то hashCode() обязан быть одинаковым (контракт hashCode/equals).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы