我收到错误消息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);
}
}
答案 0 :(得分:1)
Queue
本身不是具体的类(它是一个接口),因此无法实例化。但是,PriorityQueue
是Queue
的具体实现,因此可以实例化。
答案 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。*的参数