在做业务时重写equals方法也要重写hashcode方法
来源:互联网 发布:世界云计算公司排名 编辑:程序博客网 时间:2024/05/16 09:59
在java中会有许多编码规范,这会使你在实现功能的时候避免许多坑。这里就是记录学习一个编码规范:
在业务上要判断两个对象的内容是否相等,不要自己写方法(isSame)去判断,而是应该去重写Object类的equals方法,(就像String类一样)。这个时候就能在list 中去支持 如果插入两个业务上想让其相同的对象(比如Person的name相等我就认为这两个对象相等)person1 person2,在list中插入person1,则 list.contains(person2)返回的就是true。
但是如果想要支持HashMap、HashSet、LinkedHashMap、ConcurrentHashMap这些类,不但要重写Equals方法,还要去重写hashCode方法。至于为什么就涉及到HashCode本身的一个标识作用和这些集合类中应用hashcode的具体实现。
下面是一个重写hashcode的方法,这里就是在重写的方法中去返回 当前person对象的name属性的hashcode 去作为集合类中要去使用的hashcode。希望以后在遇到这个坑的时候能够发现问题去重写hashcode方法 或者 尽量去避免这个坑。
阅读全文
0 0
- 在做业务时重写equals方法也要重写hashcode方法
- 重写equals方法也要重写hashCode
- 对象重写equals时为什么也要重写hashCode方法
- why在重写equals时还必须重写hashcode方法
- why在重写equals时还必须重写hashcode方法
- 重写了equals()方法之后也必须重写hashCode()方法
- 为什么重写equals方法要重写hashCode
- Java重写equals方法时为什么要重写hashcode方法
- 为什么在重写了equals()方法之后也必须重写hashCode()方法
- 为什么在重写了equals()方法之后也必须重写hashCode()方法
- 为什么在重写了equals()方法之后也必须重写hashCode()方法
- 为什么在重写了equals()方法之后也必须重写hashCode()方法
- 为什么在重写了equals()方法之后也必须重写HashCode()方法
- 为什么要在重写了equals方法时还要重写hashcode方法
- 9. 【对于所有对象都通用的方法】重写equals方法时一定也要重写hashCode方法
- 为什么重写equals方法的同时也要重写hashcode方法?
- 重写equals()时为什么也得重写hashCode()之深度解读equals方法与hashCode方法渊源
- 重写hashCode()方法和重写equals()方法
- c/c++整理--静态成员和临时对象
- Flask——Jinja2 学习笔记
- hdu2047阿牛的EOF牛肉串
- 三种列表的代码
- 生成验证码且进行登录验证
- 在做业务时重写equals方法也要重写hashcode方法
- 使用Maven导出war包
- 寻找两个有序数组的第k小的数
- jstl实现判断表格单双行(<c:forEach>用法)
- Linux使用退格键时出现^H ^?解决方法
- 移动端UI设计750揭秘
- MySQL调优三步曲(慢查询、explain profile)
- 嵌入式软件测试的十大方法
- Linux常用shell命令