在Java中使一个数据结构驱动程序类适用于多种对象类型

在Java中使一个数据结构驱动程序类适用于多种对象类型,java,data-structures,binary-search-tree,Java,Data Structures,Binary Search Tree,我搜索了一下,发现了许多类似的问题,但没有一个是与Java相关的 我正在为我正在工作的项目实现一个BST,我希望它能够对多个对象类使用与记录相同的逻辑 例如,我想要一个BST驱动程序类,在这个类中,我可以使一个二叉树能够接受和构建带有水果、蔬菜、肉类等类型对象的树,这样我就不必为每种类型的对象创建一个BST驱动程序类 我对Java并不陌生,但到目前为止,我还不知道如何做到这一点。一般来说,您对Java和面向对象编程还是相当陌生的。这不是一件坏事,但认识到这一点,你会做得更好 这是一个接口类的作业

我搜索了一下,发现了许多类似的问题,但没有一个是与Java相关的

我正在为我正在工作的项目实现一个BST,我希望它能够对多个对象类使用与记录相同的逻辑

例如,我想要一个BST驱动程序类,在这个类中,我可以使一个二叉树能够接受和构建带有水果、蔬菜、肉类等类型对象的树,这样我就不必为每种类型的对象创建一个BST驱动程序类


我对Java并不陌生,但到目前为止,我还不知道如何做到这一点。

一般来说,您对Java和面向对象编程还是相当陌生的。这不是一件坏事,但认识到这一点,你会做得更好

这是一个接口类的作业

接口提供了两种功能:一种是可以操作的顶级对象,将实现视为理所当然;另一种是能够在实现接口的类将具有的最小操作集上与未来联系

例如,考虑车辆、自行车、汽车和别克的术语。如果我将这些实现为Java类,我会使Vehicle成为实现它的Bicycle和Car的接口。考虑以下事项:

public interface Vehicle {
    public void move();
}

public class Bicycle implements Vehicle {
    int wheels;
    public Bicycle {
        wheels = 2;
    }
    @Override
    public void move() {
        //implementation for steering/pedaling the bike
    }
}

public class Car implements Vehicle {
    int wheels;
    int fuelCap;
    public Car {
        wheels = 4;
        fuelCap = 12; //12 gallon tank
    }
    @Override
    public void move() {
        //logic to drive the car
    }
}

现在,任何把车辆当作自行车或汽车的方法,但你只能保证它能够移动(尽管不能保证如何移动)。这对于返回类型更加有用,但为了简洁起见,我省略了它们。阅读有关该主题的教程。

另一条与您的帖子相关但与我的答案无关的注释:您需要能够定量比较值,以便将它们存储在二元搜索树中。这是树属性的基础,因为它们是在插入时排序的。你可能有更多的细节,因为这闻起来像是家庭作业,但我必须问你一些你需要问自己的问题香蕉是更多、更少还是等同于汉堡包?“如果你不能回答这个问题,你就不能用BST来排序和存储这些数据。不,我刚才已经做完作业了。这就是我想学习更多Java的原因。谢谢你的解释!