我正在编写自己的PriorityQueue类,并且具有:
private Queue<E>[] queues;
public PriorityQueue(int maxSize) {
queues = new Queue[maxSize+1];
size = maxSize;
}
这可以编译,但是当我在priorityQueue上调用
.add
时,出现此错误:java.lang.NullPointerException
at PriorityQueue.add(PriorityQueue.java:13)
这里添加:
public void add(E item, int priority) {
queues[priority].offer(item);
}
最佳答案
您需要初始化队列:
public PriorityQueue(int maxSize) {
queues = new Queue[maxSize+1];
size = maxSize;
for(int i = 0; i <= maxSize; i++)
queues[i] = new LinkedList<E>();
}
您可以选择所需的任何Queue实现,我刚刚选择了LinkedList,因为它首先出现在我的脑海中...