gpt4 book ai didi

java - 如果我不需要覆盖 equals,则覆盖 HashCode

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:04 25 4
gpt4 key购买 nike

我有一个名为 Position 的自定义类。我想使用以下内容:-

Set<Position> s=new HashSet<Position>();

我是否必须重写 Position 类中的 HashCode() 方法?我没有覆盖 equals() 方法。我希望两个 Position 对象仅在它们是同一对象时才被视为相等。我是否仍然必须重写 HashCode() 才能使用如上所示的 HashSet?

最佳答案

如果您希望不同的对象(大概代表相同的事物)算作相等,您只需重写 hashcodeequals

(澄清一下,如果您确实覆盖了一个,您应该覆盖另一个,以便测试为相等的对象始终具有相同的哈希码。)

关于java - 如果我不需要覆盖 equals,则覆盖 HashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6878137/

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