错误:类型队列不接受参数 - 队列和优先级队列之间有什么区别?

时间:2014-02-08 12:11:04

标签: java collections parameters queue stack

我收到错误消息Type Queue不接受参数。当我替换将队列行更改为PriorityQueue时,此错误消失并且编译正常。有什么区别,如何将其更改为编译和常规队列?

import java.util.*;

public class StackOneTwoMultiply {

    public static void main(String[] args) {

        int first, second;

        Stack<Integer> s = new Stack<Integer>();  //stack called s
        PriorityQueue<Integer> q = new PriorityQueue<Integer>();

        for (int i = 10; i > 0; i--) {      //filling the stack (what order to fill was not specifified)
            s.push(i);
        }

        while (!s.isEmpty()) {
            first = s.pop();
            second = s.pop();
            q.offer(first * second);
            System.out.println(q.peek());
        }

        System.out.print(q);
    }
}

2 个答案:

答案 0 :(得分:1)

Queue本身不是具体的类(它是一个接口),因此无法实例化。但是,PriorityQueueQueue的具体实现,因此可以实例化。

答案 1 :(得分:0)

如果要使用Queue而不是PriorityQueue,请使用Queue接口创建LinkedList类的对象。

import java.util.*;
.....
Queue<Integer> q = new LinkedList<Integer>();
.....

,如果在此之后仍然无法使用,请尝试使用指定的import语句:

import java.util.LinkedList;
import java.util.Queue;

有时候,它会不接受java.util。*的参数

code snippet of error due to java.util.*