用Java实现队列

时间:2013-10-23 17:33:20

标签: java queue

我正在练习堆栈和队列,并对它们有一些疑问(主要是在队列中)

我如何在代码中实现队列?

package *****;

import java.util.*;

public class stackPractice {

    /**
    * @param args
    */
    public static void main(String[] args) {
        Stack st = new Stack();
        Queue q = new Queue();

        st.push(100);
        st.push(90);
        st.push(70);

        System.out.println(st);

        //st.pop();

        System.out.println(st.pop());
        System.out.println(st);
        System.out.println(st.peek());

        //value = st.peek();
    }

}

我让Stack st作为堆栈工作,但Queue给了我一些问题

在新的第二个队列之后,有一条红色的波浪线表示“无法实例化类型队列”。

Queue q = new *Queue*();

我不确定这意味着什么。

--- ---编辑

我知道队列没有实际的代码可以做任何事情(入队,出队等等)。

4 个答案:

答案 0 :(得分:1)

Stack是Java中的一个类,但Queue是一个接口,因此您无法实例化它。您需要调用其实现类之一的构造函数。

答案 1 :(得分:0)

Queue是一个接口,接口无法直接实例化。使用其中一个实现来创建接口的实例

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

答案 2 :(得分:0)

Queue是一个接口,因此您无法实例化它,但您需要“实现”它。

请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html

此处复制:How do I instantiate a Queue object in java?

答案 3 :(得分:0)

Queue is an interface并且无法实例化。

您可以使用LinkedList。或其中一个listened

   AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue