If two objects are equal according to the ``equals(Object)`` method, then calling the ``hashCode`` method on each of the two objects must produce the same integer result.
It is not required that if two objects are unequal according to the ``equals(java.lang.Object)`` method, then calling the ``hashCode`` method on each of the two objects must produce distinct integer results.