7.equals方法实现
equals()方法需要根据业务而来,取对象属性中标识对象业务唯一标识来进行比较
实现了equals方法,同时需要实现hashcode方法,为了维护统一性
推荐http://blog.sina.com.cn/s/blog_700aa8830101jtlf.html
说到equals不得不提到一个问题,equals和hashcode方法,实现了equals方法为什么要实现hashcode方法
是为了保证统一性,重写了equals方法,同时也需要重写hashcode方法
在HashMap场景下,put的时候,是先根据key的hashcode来定位到是在哪个bucket(数组下标),然后再通过遍历单链来查找equals的对象
如果重写了equals没有重写hashcode,那么容易导致混乱
equals相同,hashcode相同么?
:equals相同,hashcode一定相同
hashcode相同,equals相同么?
:hashcode相同,equals不一定相同,比如HashMap的bucket的单链全是hashcode相同的