gpt4 book ai didi

java - 如果我重写 equals 并且不使用任何哈希集合,是否有必要重写哈希码

转载 作者:行者123 更新时间:2023-11-29 06:00:01 24 4
gpt4 key购买 nike

我有一个对象,我只是想覆盖equals 方法来比较两个对象,我没有在我的程序中的任何地方使用任何散列集合。在这种情况下,为什么 hashCode 和 equals 方法中存在契约,即如果两个对象相等,那么它们应该具有相同的哈希码。如果您想将此对象作为某个使用散列然后覆盖它的集合中的键,那么一般的哈希码契约(Contract)不应该是特定于大小写的吗??

最佳答案

我会说是的,因为您不知道您(或更重要的是,另一个开发人员)将来是否想使用散列将它们放入一个集合中。这可以是直接的,也可以是间接的,即您可以将您的对象传递给另一个不是您编写的方法,并且该另一个方法在其实现中使用散列集合。

关于java - 如果我重写 equals 并且不使用任何哈希集合,是否有必要重写哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com