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