我有一个问题,我想对列表进行排序。 我想写一个compareTo方法,但是我想将变量赋予compareTo方法,就像这样
public int compareTo(Object object, LinkedList<Integer> list) {
...
}
可以这样做吗? 谢谢你的帮助
答案 0 :(得分:1)
不,您无法在Comparable
界面中更改抽象方法的方法签名。在实现Comparable
接口时,您需要实现
int compareTo(T o)
答案 1 :(得分:0)
如果要在排序函数中使用构建,则必须使用Comparable接口。
所以答案是否定的。如果你想要访问一个额外的目标,那就把它作为一个变量在类中。
答案 2 :(得分:0)
这不是合作者的目的吗?
List<Integer> list = new ArrayList<Integer>();
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
答案 3 :(得分:0)
您可以在同一个类中使用List
实现Comparable
接口:
class A implements Comparable<Integer> {
List<Integer> list = new ArrayList<Integer>();
@Override
public int compareTo(Integer o) {
return compareTo(o, list);
}
private int compareTo(Integer o, List<Integer> list) {
return ...; // Your comparison here
}
}