Back to questions
Ozon Fresh
Junior — Middle
69
Можете объяснить, для чего используется метод hashCode в Java и как он реализуется?
Companies where asked
Почтатех
Viasat tech
Effective Mobile
Answer from AI
sobes.tech AI
Метод hashCode() в Java используется для получения хэш-кода объекта — целого числа, которое служит для быстрого сравнения объектов, например, в хэш-таблицах (HashMap, HashSet).
Правила реализации:
- Если два объекта равны по методу
equals(), то ихhashCode()должен возвращать одинаковое значение. - Если объекты не равны, то желательно, чтобы их хэш-коды были разными, но это не обязательно.
Пример реализации для класса с двумя полями:
@Override
public int hashCode() {
int result = 17;
result = 31 * result + (field1 != null ? field1.hashCode() : 0);
result = 31 * result + (field2 != null ? field2.hashCode() : 0);
return result;
}
Здесь 31 — простое число, часто используемое для уменьшения коллизий.