Встречается на собеседованиях • сегодня
Может ли у двух разных объектов быть одинаковый 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() для точного сравнения.

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