我正在为抽象对象实现一个堆。现在我能够实现一个堆栈,因为堆栈不需要比较。但是堆需要比较。所以我有Object A
和Object B
。我可以确保它们Object
属于heap
同一个类,并且可以对它们进行排序(即该类有一个compareTo
要知道的函数if A<B, A=B, or A>B)
。但是如果我使用A.compareTo(B)
,我会收到一个语法错误,说它compareTo
不是为对象定义的。我做了一些研究,发现Object没有实现Comparable。我该如何解决这个问题。谢谢。
问问题
771 次
3 回答
2
如果您的所有对象都是实现的共同祖先的后代怎么办Comparable
?因此,在这种情况下,您可以在代码中使用该类型 not Object
。
于 2012-11-09T10:10:08.237 回答
1
对象没有实现可比性。Comparable
您应该创建实现接口的MyObject 。
class MyObject implements Comparable<Object>{
...
@Override
public int compareTo(Object arg0) {
// custom logic
return 0;
}
}
于 2012-11-09T10:10:28.877 回答
1
-你可以让那个类实现java.lang.Comparable
接口Object
作为类型参数
public class Test implements Comparable<Object>{
public int compareTo(Object o){
//
}
}
于 2012-11-09T10:12:56.280 回答