hashCode在hashSet中有作用,因为hashset存放对象。使用hash算法,所谓的hash算法就是将hashSet分为区域,然后根据hashCode的值来比较,如果有相同的就不继续存入。每个对象的hashCode是不一样的。一般不重写对象的equal方法的话,不同的对象都会存放进hashSet。如果重写了equal方法,一般也要重写hasCode方法,如果一个对象重写了hashCode()方法,那么两个都相同属性的对象存放hashSet的时候,第二个对象就不会存放进入。对于重写了equals()和hashCode()的对象,为了避免内存泄漏,我们不可以改变hashCode()中使用到的属性的值。