看了非常多博客,怕自己忘记了,通俗易懂的总结如下
本人总结下:
重写前,比较地址,hashcode方法如果相等可能是同一个对象,所以再用equals再比内存地址
重写后,比较值,重写hashCode方法后,值相同的不同对象返回的是同样的哈希码,但是值不同的对象可能也会有相同的哈希码,所以再用重写的equals方法比值
重写前不符合人的思考(如果直接只用equals效率太低,hash比对比较快,最后使用equals方法以防万无一失)
相关文章
- 01-23重写equals为什么要重写hashcode
- 01-23为什么要同时重写equals和hashCode?这个经典面试题你会答吗?
- 01-23总结,为什么要重写hashset的hashcode()和equals()?
- 01-23equals()重写之后为什么要重写hashCode()方法
- 01-23JAVA中重写equals()方法为什么要重写hashcode()方法说明
- 01-23内存泄漏避雷!你真的了解重写equals()和hashcode()方法的原因吗?
- 01-23Collection集合中的 contains 和 remove 使用深入——为什么要重写equals() ?
- 01-23一文搞懂--Java中重写equals方法为什么要重写hashcode方法?
- 01-23对于java重写equals和hashCode方法的基础理解
- 01-23Java常用API(五)—— 重写对象的equals和hashCode方法