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.