在Java中实现节点的可比性

时间:2016-01-01 02:59:11

标签: java comparable

我是Java的新手,因此这些问题对某些人来说可能看起来微不足道。 我有一个Node类的实现,它使用通用数据类型T.我想实现一个可比较的比较两个T实例。

这是我的代码。

private class Node<T> implements Comparable<T> {
        private T data;
        private Node next;

        public Node(T data){
            this.data = data;
            this.next = null;
        }

        @Override
        public int compareTo(T other) {
            if(this.data == other) return 0;
            if(this.data < other) return 1;
            if(this.data > other) return -1;
        }
    }

此代码无法编译,因为Java会抛出错误的操作数类型错误。编写compareTo函数的正确方法是什么。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:4)

首先,您需要T才能在它们之间进行比较。你想要的基本上只是

private class Node<T extends Comparable<T>> implements Comparable<Node<T>> {
    ...

    @Override
    public int compareTo(Node<T> other) {
       return data.compareTo(other.data);
    }
}