: 逻辑相等,就是逻辑上是相等的,比如id一样,判定它们相等,即使它们是两个不同的对象
什么时候应该覆盖equals
当类需要逻辑相等这个概念的时候就应该覆盖equals
比如要判断两个student是否是同一个人...如果两个对象根据equals方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方法都必须产生同样的整数结果....(即equals相等,那么hashCode一定相等,需要注意的是,反过来不一定成立,即hashCode相等不代表equals相等)
如果两个对象根据equals方法比较是不相等的,那么调用这两个对象中任意一个对象的...equals相同而hashCode不相等,那么跟HashMap一起使用,则会得到与预期不相同的结果....步骤(a) 为该域计算int类型的散列码c:
返回result
测试,是否符合『相等的实例是否都具有相等的散列码』
OK,知道怎么写之后,我们重写Student类的hashCode方法:
@Override