java - 在 java 中扩展与实现 Comparable

标签 java binary-search-tree

我正在尝试用java实现二叉搜索树。它可以将任何对象作为树中节点的数据,只要该对象实现了 Comparable 接口(interface)。这是必要的,因为在树中放置新节点时,我们需要决定新节点与其父节点相比是否具有较小较大值(value)。我的 Node 类如下所示。

package com.java.ds.bst;

public class Node<T extends Comparable<T>> implements Comparable<T> {
  private T data;
  private Node<T> left = null;
  private Node<T> right = null;

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

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

  public T getValue() {
    return this.data;
  }

  public Node<T> getLeft() {
    return this.left;
  }

  public Node<T> getRight() {
    return this.right;
  }

  public void setLeft(Node<T> left) {
    this.left = left;
  }

  public void setRight(Node<T> right) {
    this.right = right;
  }

  @Override
  public int compareTo(T other) {
    return this.data.compareTo(other);
  }
}

我不明白的是,在类名声明中,为什么需要 T extends Comparable<T>而不是T implements Comparable<T>

最佳答案

这是泛型的语法,T extends Comparable<T>意味着它将接受 Comparable<T> 的任何内容.

您使用工具是正确的Comparable<T>在实现接口(interface)时。

关于java - 在 java 中扩展与实现 Comparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54108169/

相关文章:

java - 在 Spring 中,可以从 @Controller 类中的单个方法调用两个不同的服务吗?

java - ReSTLet 响应 POST 请求

java - 当两个场景都显示时,我可以在一个场景中设置另一个场景中的 TextField 值吗?

创建一棵二叉树,但它不起作用 - 树始终为空

Javascript:按顺序遍历递归混淆的二叉搜索树

java - 使用java删除段落的中间元素

java - 在一个类中实现 SharedPreferences 以便能够从多个 fragment 中获取和保存数据

c - 二叉树代码无法正常工作

java - 二叉搜索树递归错误及运算轨迹

c - 我是否设法正确估计了 O(n)?