equals(Object), то их хэш-коды (возвращаемые методом hashCode()) должны быть одинаковыми.equals(Object), то их хэш-коды могут быть как одинаковыми, так и различными. Хорошей практикой является обеспечение различных хэш-кодов для неравных объектов для лучшей производительности коллекций, основанных на хэшировании.hashCode() должен возвращать одинаковые значения для одного и того же объекта при многократных вызовах, если никакая информация, используемая для вычисления хэш-кода, не изменилась.a и b, если a.equals(b) равно true, то b.equals(a) также должно быть true.a, a.equals(a) должно быть true.a, b и c, если a.equals(b) равно true и b.equals(c) равно true, то a.equals(c) также должно быть true.a и b, многократные вызовы a.equals(b) должны последовательно возвращать true или false, при условии, что информация, используемая в сравнениях equals(Object), не изменилась.Пример реализации:
java