java - 在 Java 中使用泛型和抽象数据类型

标签 java generics abstract-data-type

对于 CS 类,我需要使用三种数据结构来解决分配的问题:Queue、PriorityQueue 和 Stack。我想使用抽象数据结构编写该问题的单一解决方案。我将使用每个所需数据类型的包装类来实现 ADT。这是我到目前为止所拥有的:

一个名为方法的接口(interface):

public interface Method<E> {

    public abstract void add(E data);
    public abstract E remove();
    public abstract E peek();
    public abstract Iterator<E> Iterator();
}

以及实现该接口(interface)的三个包装类。我将它们称为 QueueMethod、StackMethod 和 PriorityQueueMethod。不过,我在实现接口(interface)时遇到了一些麻烦。这是实现的开始,它给出了错误“类不是抽象的,并且不会覆盖抽象方法 add(java.lang.Object)”。据我所知,这两个添加方法的签名是相同的。

这是开始的 QueueMethod 包装类:

public class PriorityQueueMethod<T> implements Method {

    PriorityQueue<T> queue;

    public PriorityQueueMethod() {
        queue = new PriorityQueue<T>();
    }

    public void add(T data) {
        queue.offer(data);
    }
}

最佳答案

将泛型添加到您正在实现的 Method 类中,如下所示:

public class PriorityQueueMethod<T> implements Method<T> 

关于java - 在 Java 中使用泛型和抽象数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4050481/

相关文章:

java - Ebean 关闭在 Play 测试中被破坏

在结构中创建指向结构的指针数组

java - 努力实现抽象数据类型

c++ - 如何从字符串中检测数据类型?

java - 怎样总结年代?

java - 哪种 equals 方法更优选?

java - 将 pentaho di 与 Web 应用程序集成

java - Spring jdbcTemplate : generic code to run a select query with model name provided

c# - 无法将 IEnumerable<T> 的类型隐式转换为 IEnumerable<T>

c# - 使用链接而不是网格列编写泛型