Indicates whether some other object is "equal to" this one. Implementations must fulfil the following requirements:
Returns a hash code value for the object. The general contract of hashCode is:
hashCode
Returns a string representation of the object.