use*_*750 2 java compareto comparable
现在我正在尝试做一个涉及创建可以接收任何通用对象的堆的赋值,并且节点可以通过实现Comparable接口相互比较.问题是,我找不到像这样比较通用对象的方法.
这是我到目前为止Node类的内容:
private class Node<E> implements Comparable<E>
{
private E data;
private Node left;
private Node right;
//constructors
public Node(E data)
{
this.data = data;
left = null;
right = null;
}
public Node(E data, Node left, Node right)
{
this.data = data;
this.left = left;
this.right = right;
}
//returns current data
public Object getData()
{
return this.data;
}
public int compareTo(E other)
{
return data.compareTo(other);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译时,它说"找不到符号 - 方法比较(E)." 方法compareTo()在Comparable接口中,所以我无法理解为什么会发生这种情况,我不知道如何修复它.任何人都有任何想法?
您需要定义E
的Comparable
还有:
private class Node<E extends Comparable<E>> implements Comparable<E>
Run Code Online (Sandbox Code Playgroud)
此外,让Node类与自身相比可能更有意义:
private class Node<E extends Comparable<E>> implements Comparable<Node<E>>
...
public int compareTo(Node<E> other)
{
return data.compareTo(other.data);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7367 次 |
最近记录: |