gpt4 book ai didi

java - 具有可比接口(interface)的 equals 方法契约

转载 作者:行者123 更新时间:2023-11-29 09:34:08 26 4
gpt4 key购买 nike

我有一个像 Person 这样的自定义类:

public class Person {
int age;
String name;
}

现在我想根据 agePerson 类对象进行排序。

所以我将使用Comparable接口(interface)并实现compareTo()方法。

并且 compareTo 将具有仅根据 age 比较人员对象的逻辑。

所以如果我这样做:

Collections.sort(list);  // where list is a list of person

我将得到根据年龄排序的人员列表。

但我在某处读到,当我们执行 Comparable 实现时,我们也需要覆盖 equals() 方法。

但我目前还没有看到它的用途。

谁能解释一下,如果我只想根据年龄进行排序,那么哪里还需要覆盖equals()方法>?

最佳答案

没有与Comparable.compareTo()equals() 相关的法律。但是我要说的是,如果 compaeTo() 返回 0equals() 返回 false,这会让人感到困惑。

我认为在你的情况下你应该使用自定义比较器而不是让你的类Comparable。原因是今天你的比较标准是年龄,明天它将是这个人的名字,然后是姓氏,然后是体重......等等。这就是引入 Comparator 的原因,应该使用的用例。

关于java - 具有可比接口(interface)的 equals 方法契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271616/

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