用Java创建一个队列数组

swi*_*itz 4 java arrays queue

我正在编写自己的PriorityQueue类,我有:

private Queue<E>[] queues;


public PriorityQueue(int maxSize) {
  queues = new Queue[maxSize+1]; 
  size = maxSize;
}
Run Code Online (Sandbox Code Playgroud)

这编译,但当我调用.addpriorityQueue时,我收到此错误:

java.lang.NullPointerException
    at PriorityQueue.add(PriorityQueue.java:13)
Run Code Online (Sandbox Code Playgroud)

这里补充:

public void add(E item, int priority) {
  queues[priority].offer(item);
}
Run Code Online (Sandbox Code Playgroud)

cor*_*iKa 6

你需要初始化你的队列:

public PriorityQueue(int maxSize) {
  queues = new Queue[maxSize+1]; 
  size = maxSize;
  for(int i = 0; i <= maxSize; i++) 
    queues[i] = new LinkedList<E>(); 
}
Run Code Online (Sandbox Code Playgroud)

你可以选择你想要的任何队列实现,我刚刚选择了LinkedList,因为它首先突然出现在我脑海中......