gpt4 book ai didi

java - 如何使用 Java 的 Comparable 来比较树中的通用对象?

转载 作者:行者123 更新时间:2023-12-02 07:03:40 25 4
gpt4 key购买 nike

现在我正在尝试做一个分配,涉及创建一个可以接收任何通用对象的堆,并且节点可以通过实现 Comparable 接口(interface)来相互比较。问题是,我找不到像这样比较通用对象的方法。

这是我目前对 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);
}
}

当我尝试编译时,它显示“找不到符号 -- 方法 compareTo(E)”。方法 compareTo() 在 Comparable 接口(interface)中,所以我不明白为什么会这样,我也不知道如何解决它。有人知道吗?

最佳答案

您还需要将 E 定义为 Comparable:

private class Node<E extends Comparable<E>> implements Comparable<E>

此外,让您的 Node 类与其自身相比较可能更有意义:

private class Node<E extends Comparable<E>> implements Comparable<Node<E>>
...
public int compareTo(Node<E> other)
{
return data.compareTo(other.data);
}

关于java - 如何使用 Java 的 Comparable 来比较树中的通用对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16161046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com