【发布时间】:2018-06-04 21:12:21
【问题描述】:
我有一个问题。我编写了简单的抽象类,我尝试对该类的数组列表进行排序,并为 compareTo 函数实现了 Comparator 接口,但 List.sort 给出了错误。请帮助。这是一个代码:
public abstract class Antena implements Comparator<Antena>{
private double x, y;
public Antena(double x, double y) {
this.x = x;
this.y = y;
}
public double getX() {
return x;
}
public double getY() {
return y;
}
@Override
public int compare(Antena o1, Antena o2) {
return (int)(o1.getX()-o2.getX());
}
}
在主课中我有:
List<Antena> anteneObj=new ArrayList<>();
anteneObj.add(.....);
....
....
Collections.sort(anteneObj);
这给了我一个错误并且不会对列表进行排序。有什么问题?我应该在扩展类中扩展或实现某些东西。当然,我有 2 个扩展抽象 Antena 类的类。
【问题讨论】:
-
这给了我一个错误哪个错误?
-
double的范围比int大很多 - 使用a - b并转换为int是一个非常糟糕的主意...跨度> -
你正在对
Antena的实例进行排序,所以它需要实现Comparable<T>,而不是Comparator<T>。 -
不存在类型变量 T 的实例,因此 Antena 符合 Comparable
-
我也尝试过类似但不起作用。
标签: java arrays sorting object