看了非常多博客,怕自己忘记了,通俗易懂的总结如下
本人总结下:
重写前,比较地址,hashcode方法如果相等可能是同一个对象,所以再用equals再比内存地址
重写后,比较值,重写hashCode方法后,值相同的不同对象返回的是同样的哈希码,但是值不同的对象可能也会有相同的哈希码,所以再用重写的equals方法比值
重写前不符合人的思考(如果直接只用equals效率太低,hash比对比较快,最后使用equals方法以防万无一失)
相关文章
- 总结,为什么要重写hashset的hashcode()和equals()?
- 为什么重写equals后要重写hashCode
- 为什么要重写equals和hashCode
- 对象作为 map 的 key 时,需要重写 equals 方法和 hashCode 方法
- HashSet中存方用户自己定义数据类型数据,重写equals方法和hashCode方法
- HashSet中的元素必须重写equals方法和hashCode方法
- 为什么要重写 hashcode 和 equals 方法?
- 关于重写equals()和hashCode()的思考
- 为什么覆写equals()方法的时候总是要覆写hashcode()?
- Hibernate的实体类中为什么要写equals方法和hashcode方法--请各位高人指点