Pascal4eg / Java

 Java | Фишки и трюки

Контракт метода hashCode

Для реализации хэш-функции в спецификации языка определены следующие правила:

  1. вызов метода hashCode() один и более раз над одним и тем же объектом должен возвращать одно и то же хэш-значение, при условии что поля объекта, участвующие в вычислении значения, не изменялись.
  2. вызов метода hashCode() над двумя объектами должен всегда возвращать одно и то же число, если эти объекты равны (вызов метода equals() для этих объектов возвращает true).
  3. хороший hashCode() должен распределять объекты по хеш-таблице равномерно, минимизируя количество коллизий (одинаковых хешей у разных объектов).