为什么重写 equals 时必须重写 hashCode ⽅法?

为什么重写 equals 时必须重写 hashCode ⽅法?_第1张图片

我个人的理解:

比如一个人有年龄,姓名,重写equals我们想让年龄,姓名相同就是同一个人,而两个对象的hashCode()是不相等的,所以重写equals()时候就必须重写hashCode(),让这两个对象的hashCode()相同,变成一个对象,存到HashSet()中,相等的对象hashCode()一定相同,重写hashCode()就是为了让这个对象的hashCode()一样,这样存在HashSet()里面才能是一个对象,不会产生歧义。

你可能感兴趣的:(java)