![](https://img-blog.csdnimg.cn/img_convert/332e8d9637461ca09a96eb324ba4c880.png)
我个人的理解:
比如一个人有年龄,姓名,重写equals我们想让年龄,姓名相同就是同一个人,而两个对象的hashCode()是不相等的,所以重写equals()时候就必须重写hashCode(),让这两个对象的hashCode()相同,变成一个对象,存到HashSet()中,相等的对象hashCode()一定相同,重写hashCode()就是为了让这个对象的hashCode()一样,这样存在HashSet()里面才能是一个对象,不会产生歧义。
我个人的理解:
比如一个人有年龄,姓名,重写equals我们想让年龄,姓名相同就是同一个人,而两个对象的hashCode()是不相等的,所以重写equals()时候就必须重写hashCode(),让这两个对象的hashCode()相同,变成一个对象,存到HashSet()中,相等的对象hashCode()一定相同,重写hashCode()就是为了让这个对象的hashCode()一样,这样存在HashSet()里面才能是一个对象,不会产生歧义。