标签:相等 equals hashcode 修改 hashCode 散列
equals
equal()方法用来判断两个对象是否“相同”。
hashCode
hashCode()方法返回一个int数,在Object类中的默认实现是“将该对象的内部地址转换成一个整数返回”。
坑
HashTable HashMap等散列存储结构
同时使用equals()与hashCode(),不同时重写会出现数据比对异常。
乱用hashCode
hashcode变了,导致查找的区域错误。
正确使用姿势
- 在散列结构中判断对象相等的条件是 hashcode相等以及equals 相等
- 覆盖equals时一定要覆盖hashCode
- 尽量不要修改与计算hashcode相关属性的值,非要修改的话先删除该元素,修改完再加入集合
参考
标签:相等,equals,hashcode,修改,hashCode,散列 来源: https://www.cnblogs.com/hr0552/p/15183399.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。