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

Может ли быть одинаковое значение hashCode у двух разных по equals объектов

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

Пример:

java
String s1 = "Aa";
String s2 = "BB";
System.out.println(s1.hashCode()); // 2112
System.out.println(s2.hashCode()); // 2112
System.out.println(s1.equals(s2)); // false

Важно:

  • Коллизии допустимы, но нежелательны (снижают производительность хеш-таблиц).
  • Если equals() вернет true, то hashCode() обязан быть одинаковым (обратное неверно).
  • Хорошая хеш-функция минимизирует коллизии.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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