为 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);
}
}
我是 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);
}
}