【发布时间】:2020-10-18 23:14:42
【问题描述】:
我有一个实现 Comparable 接口的类。 我想按对象的 ID 和名称对对象进行排序,但采用两种单独的方法。 比如按id排序:
public int compareTo(Metro m1) {
return this.id - m1.id;
}
我也想按名称排序,这意味着我必须这样做:
public int compareTo(Metro m1) {
return this.name.compareTo(m1.name);
}
问题是我不能用相同的名称和相同的参数编写相同的函数,我该如何解决这个问题?
当我在对象列表上调用 Collections.sort(this.list); 时,它如何确定我想按 id 或按名称对列表进行排序?
【问题讨论】:
-
我不确定其他人如何使用可比性,但我只在我的班级有我想要维持的自然秩序时才使用它。出于排序目的,我使用 Collections.sort(list, Comparator)
-
@RandomCoder_01 所以你的意思是按 id 比较对象,如果它们的 id 相等则按名称比较对象?
-
是的。只要在您创建比较器时 id 是可见的。
标签: java collections compare