我正在编写自己的PriorityQueue类,我有:
private Queue<E>[] queues;
public PriorityQueue(int maxSize) {
queues = new Queue[maxSize+1];
size = maxSize;
}
Run Code Online (Sandbox Code Playgroud)
这编译,但当我调用.add
priorityQueue时,我收到此错误:
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)
你需要初始化你的队列:
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,因为它首先突然出现在我脑海中......