hashCode与equals
为什么重写 equals 时必须重写 hashCode 方法?
- hashCode:
- 作用:获取哈希码,也成为散列码;实际上就是一个int类型的整数。哈希码的作用也就是确定这个对象在散列表中索引的位置。hashCode这个方法存在于Object类中,所以任何类都包含了hashCode这个函数。
- 为什么要有hashCode?
- 上面说了hashCode就是确定其在散列表中的位置,例如一个类重写了hashCode方法存储于散列表中,就可以根据这个hash值来快速索引到对象在散列表的位置。hashCode相等不一定对象相等。散列表指的有:Set,Map,HashTable…
- 所以综上所述,如果不是用于散列表中,重写equals于重写hashCode关系毫无关系。但是运用于散列表中就要重写hashCode方法!