0

我正在为抽象对象实现一个堆。现在我能够实现一个堆栈,因为堆栈不需要比较。但是堆需要比较。所以我有Object AObject B。我可以确保它们Object属于heap同一个类,并且可以对它们进行排序(即该类有一个compareTo要知道的函数if A<B, A=B, or A>B)。但是如果我使用A.compareTo(B),我会收到一个语法错误,说它compareTo不是为对象定义的。我做了一些研究,发现Object没有实现Comparable。我该如何解决这个问题。谢谢。

4

3 回答 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 回答