0

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

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

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

4 回答 4

1

Stack在Java中是一个类,但是Queue是一个接口,所以你不能实例化它。您需要调用其实现类之一的构造函数。

于 2013-10-23T17:36:32.000 回答
0

Queue是一个接口,接口不能直接实例化。使用它的一种实现来创建接口的实例

Queue<String> q = new LinkedList<String>();
于 2013-10-23T17:36:46.030 回答
0

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

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

在此处重复:如何在 java 中实例化 Queue 对象?

于 2013-10-23T17:37:27.127 回答
0

队列是一个接口,不能实例化。

您可以使用LinkedList。或听过的人之一:

   AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, SynchronousQueue
于 2013-10-23T17:38:45.507 回答