java - Java中使用链表实现的队列

标签 java generics linked-list queue

我很快用Java写了一个链表类。我想编写另一个使用链表的队列类。我将如何在 Java 中实现这一点?我不完全理解 Implements/extends 关键字...这就是我的队列的样子(例如):

public class Queue<T> implements LinkedList
{
    protected LinkedList<T> list;

    public Queue() {
        list = new LinkedList<T>();
    }

    public void add( T element) {
        list.add( element);
    }

    public T removeLast() {
        return list.removeLast();
    }   
}

另请注意,链表类也是通用的。 我知道已经有内置类来实现此功能,但我想学习(这就是我尝试手动执行此操作的原因)

编辑:此外,最后,我希望能够这样说:

Queue<String> aQueue = new LinkedList<String>();

最佳答案

如果你想要类似 Queue<String> aQueue = new LinkedList<String>(); 的行为那么你的LinkedList必须扩展/实现 Queue类/接口(interface)。请记住,父类(super class)可以是子类的对象引用实例,反之亦然。

public class LinkedList<T> implements Queue<T> {

    class Node<T> {
        T data;
        Node<T> next;
    }

    //all your behavior here
}

此外,正如 Java 文档所述, Queue 是一个接口(interface)并且 LinkedList 实现它。

注意:如果您想使用 LinkedList 实现队列,您应该查看 @Tudor 发布的代码示例。

关于java - Java中使用链表实现的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10471049/

相关文章:

java - Android调用C++函数得到UnsatisfiedLinkError

Java从运行时获取特定行?

java - 是否可以将检索到的类对象(通过反射)转换为接口(interface)?

c# - 在 C# 中使用 `where T : SOMETHING` 结构

c# - 如何使用泛型为多种数据类型创建通用的加法方法?

python - 简单的链表队列

java - Tomcat 上失败的 HTTP 请求

java 泛型 - 将 List<object> 转换为 List<T>

java - java获取LinkedList中包含给定值的节点的索引

algorithm - 按引用或按值链接列表?