重写hashcode的原因在于,当对象之间是否相等需要根据对象的内容判断而不是通过对象存储的地址判断。这种情况下就需要重写equals和hashcode,因为在object类上约定**‘相等’**的2个对象hashCode方法需要返回相同的值。因此,要重写hashcode。
在Object类的equals中有这样一段描述:
这段内容上描述的是重写equals方法的时候,同样需要重写hashCode方法,因为在object类上约定**‘相等’**的2个对象hashCode方法需要返回相同的值。
重写hashCode 会影响到HashMap,HashSet等一系列的使用: