在Generic类中实现compareTo()方法

时间:2014-06-24 02:32:26

标签: java generics

我有一个我正在研究的项目,这就是我的开始:

public class Pair<T extends Comparable, E extends Comparable> implements Comparable{

    private E e;
    private T t;

    public int compareTo(Pair arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

}

我需要使用此类按升序对有序对进行排序。如果第一个相等,那么它应该按发送点排序。

你能帮助我开始这个吗?

1 个答案:

答案 0 :(得分:7)

在您的课程定义中,您的TE仿制药缺乏与自己的比较。这也适用于您的Pair课程。该类的定义应为:

public class Pair<T extends Comparable<T>, E extends Comparable<E>> implements Comparable<Pair<T, E>> {

}

现在您可以定义如何比较该对。这是一个例子:

public class Pair<T extends Comparable<T>, E extends Comparable<E>> implements Comparable<Pair<T, E>> {
    private E e;
    private T t;

    public int compareTo(Pair<T, E> pair) {
        int result = t.compareTo(pair.t);
        return (result == 0) ? e.compareTo(pair.e) : result;
    }
}