hashset里面两个对象重复意味着这两个对象的内容相同、hashcode值也相同。
(1)两个对象A和B内容相同,表示A.equals(B)的值为true。
(不重写的话,默认equals()方法是调用”=="进行判断的,”=="判断的是两个对象的引用是否相同)
(2)如果你不重写hashCode()方法的话,两个对象的hashcode值在默认情况下是不可能相同的。
但是实际上还是会出现hash值相同,但是内容不同的情况,这是由于hash值计算方法的问题,就好比10可以等于5+5,也可以等于3+7,或者4+6;因此,为了避免这种情况,一般都要重写hashCode方法,当然内容相同,hash值必须相同,因此,在重写equals方法时候,就一定要重写hashCode方法,也就是不管哪种情况,两个方法都要重写 |