Встречается на собеседованиях • сегодня
Могут ли элементы, не равные по equals(), иметь одинаковый hashCode()
Да, могут. По контракту hashCode() в Java:
- Если
obj1.equals(obj2) == true, тоobj1.hashCode() == obj2.hashCode() - Обратное необязательно – разные объекты могут иметь одинаковый хеш-код (коллизия).
Пример:
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() = false), но hashCode() совпадает. Это допустимо, хотя может снижать производительность хеш-коллекций.

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