java - 为什么在 Java 中同时覆盖 equals() 和 hashCode()?
问题描述
也许这个问题对你来说似乎很荒谬,但我显然不明白(我是初级Java)我们为什么要覆盖equals()
并hashCode()
经常在一起?
确实,我可以覆盖equals()
某些类来进行特定的比较,但是为什么我也要覆盖hashCode()
呢?非常感谢!
解决方案
equals
像 HashSet 这样的几个集合依赖于并且hashCode
是一致的这一事实。这意味着hashCode
当对象在 的意义上相等时,它必须给出相同的值equals
。
推荐阅读
- python - 如何使用列表解包将格式化字符串转换为 f 字符串?
- django - Django:视图的媒体?
- php - AWS EB - 如何从 PHP 5.6 更改为 7.X?
- html - 背景样式
- python - 如何在 python 脚本上执行代码签名?
- javascript - 如何将相同的项目插入嵌套数组
- javascript - 如何从 API 调用附加到 WordPress 定制器中的选择框?
- windows - 无法使用来自 Windows 命令提示符的 URL 访问本地目录
- php - Wordpress 主题更新 - 如何不丢失对父主题的自定义?
- python-3.x - 如何连接每个组的连续行并将它们作为数据框中的列并计算每个组的出现次数?