Встречается на собеседованиях • сегодня
Что предполагается избежать, делая правильный hashCode
Правильный hashCode помогает избежать коллизий в хэш-таблицах (например, HashMap, HashSet), что критично для производительности. Основные принципы:
- Консистентность — если объекты равны (
equals), ихhashCodeдолжен быть одинаковым. Нарушение ломает логику хэш-коллекций. - Равномерность — разные объекты должны давать разные хэши (минимизация коллизий).
- Производительность — вычисление должно быть быстрым.
Пример плохого hashCode (все объекты одного класса будут иметь одинаковый хэш):
java
@Override
public int hashCode() {
return 1; // Ужасно! Коллизии гарантированы.
}Хороший hashCode (использует Objects.hash() для удобства):
java
@Override
public int hashCode() {
return Objects.hash(name, age, id); // Учитывает ключевые поля
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы