为 Java 中的节点实现 Comparable

Implementing Comparable for a Node in Java

我是 Java 的新手,因此这些问题对某些人来说可能看起来微不足道。 我有一个节点 class 的实现,它使用通用数据类型 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 函数的正确方法是什么。任何帮助表示赞赏。

首先,您需要 T 之间具有可比性。你要的基本就是

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

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