Встречается на собеседованиях • сегодня
Какие знаешь требования для ключа
Ключ в HashMap или HashSet должен корректно реализовывать методы equals() и hashCode(), чтобы обеспечить корректную работу структуры данных. Основные требования:
- Неизменяемость: Если ключ изменяется после добавления в коллекцию, его хэш-код может измениться, что приведёт к потере доступа к значению.
- Консистентность:
hashCode()должен возвращать одно и то же значение для одного и того же объекта на протяжении всего времени его жизни (если объект не изменяется). - Равенство: Если
a.equals(b) == true, тоa.hashCode() == b.hashCode()(обратное не обязательно).
Пример корректного ключа:
java
final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы