【发布时间】:2014-07-16 12:56:42
【问题描述】:
我在我的 Employee 类中实现 Comparator 和 Comparable 来对数组列表进行排序。我正在对 2 个参数名称和 ID 进行排序。使用 Collections.sort(Employee ob1, Employee ob2) 对 ID 进行排序时,它不起作用。我收到编译错误,即该类未声明为抽象并且我没有覆盖 compare(),尽管我这样做是:
public int compare(Employee ob1, Employee ob2)
{
return ob1.id-ob2.id;
}
如果我使用它会很好用
public int compare(Object ob1, Object ob2)
{
return ((Employee)ob1).id-((Employee)ob2).id;
}
我的疑问是为什么前面的那个不起作用,因为 Employee 也是一个对象。 compareTo(Object ob) 也存在同样的问题,虽然覆盖了为什么我不能直接使用 Employee 以及为什么我需要在那里使用 Object 并且稍后需要将其转换为 Employee 类。
【问题讨论】:
-
你是如何声明你的比较器的?作为
Comparator或Comparator<Employee>? -
@tobias_k 显然是
Comparator -
是的,现在知道了,谢谢
标签: java comparator comparable