对象为什么在Java中同时重写equals()和hashCode()?
也许这个问题对你来说似乎很荒谬,但我显然不明白(我是初级Java)为什么我们应该经常一起重写equals()
和hashCode()
实际上,我可以为某个类重写equals()
以进行特定的比较,但为什么我也要重写hashCode()
?
非常感谢
你可以在下面搜索框中键入要查询的问题!
也许这个问题对你来说似乎很荒谬,但我显然不明白(我是初级Java)为什么我们应该经常一起重写equals()
和hashCode()
实际上,我可以为某个类重写equals()
以进行特定的比较,但为什么我也要重写hashCode()
?
非常感谢
# 1 楼答案
一些集合,例如HashSet,依赖于
equals
和hashCode
是一致的这一事实。这意味着当对象在equals
意义上相等时,hashCode
必须给出相同的值