Set没有重复元素,如果存入自定义的对象,想要去重的话,要:
如果两个自定义对象,属性完全相同,那么就判定为同一个对象
hashCode
是一个返回 int
类型的值的方法,是在Object
类中定义的,所以每个对象都有此方法,该方法为 native
方法(native
方法是原生方法,是用C语言或者C++写的),所以不能看到内部实现的
hashCode
值对应着内存存放的地址,每一个对象的 hashCode
值都是不一样的
set
的 add
方法会执行对象的 hashCode
hashCode
相同的时候,会去调用 equals
,equals
结果相同则判定为重复元素,不相同则判定为不同的元素