Back to questions
СБЕР
IT One
Aston
Junior — Middle
62
Какой характеристикой должен обладать ключ для использования в HashMap?
Companies where asked
Stroki
Secreate
ООО Динамика
Answer from AI
sobes.tech AI
Ключ для использования в HashMap должен обладать следующими характеристиками:
-
Корректно реализованные методы
hashCode()иequals()— чтобы HashMap мог правильно вычислять хэш и сравнивать ключи для определения уникальности. -
Иммутабельность (желательно) — ключ не должен изменять свои поля, участвующие в вычислении
hashCode()иequals(), пока он используется в HashMap. Иначе это приведёт к нарушению целостности данных и невозможности найти элемент.
Пример:
class Person {
private final String id;
public Person(String id) {
this.id = id;
}
@Override
public int hashCode() {
return id.hashCode();
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return id.equals(other.id);
}
}
Такой ключ можно безопасно использовать в HashMap.