gpt4 book ai didi

Java contains() 与 equals() 不符

转载 作者:行者123 更新时间:2023-12-01 22:19:43 29 4
gpt4 key购买 nike

我有一个自定义类,其中覆盖了 equals()hashCode() 方法。我将该类的实例存储在 TreeSet 中。我无法弄清楚为什么 tree.contains(someObject) 返回 true,而 tree.first().equals(someObject) 返回 false,在只有一个元素的情况下。

最佳答案

实际上你应该实现 Comparable 但您还应该覆盖等于两者都是必需的。

此外,您应该确保当 equals 返回 true 时,compareTo 方法始终返回 0。如果 equals 返回 false,那么 compareTo 也应该返回一个值!= 0。

如果您想使用HashMap,则必须实现hashCode。反而。因此,实现它可能也是一个好主意。

编辑:

对于那些想知道 Comparator 的人:当您想不时使用不同类型的排序时,可以使用此接口(interface)。在这种情况下,您可以创建一个额外的类来充当排序器。然后,该类需要实现 Comparator 接口(interface)。因此,在这种情况下,您不希望您的类实现它。

关于Java contains() 与 equals() 不符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30141421/

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