我想要输出图片上的效果,我应该怎么写displayQueue方法呢
我的思路使用了遍历,然后打印出入队的元素,但它输出的结果却是null
并且我想要打印出图片上的两条杠,就会报错。
大家可以帮我看一下是哪里错了吗
```java
public class Queue {
private Double[] values;
private int front;
private int rear;
private int counter;
public Queue(int size) {
values = new Double[size];
front = 0;
rear = -1;
counter = 0;
}
public boolean isEmpty() {
return front == rear;
}
public boolean isFull() {
if(front == (rear + 1) % values.length) {
return true;
}
return false;
}
public Double enqueue(double x) {
if(isFull()) {
return null;
}
rear = (rear + 1) % values.length;
values[rear] = Double.valueOf(x);
counter++;
return values[rear];
}
public Double dequeue() {
if(isEmpty()) {
return null;
}
front = (front + 1) % values.length;
counter--;
return values[front];
}
public void displayQueue() {
System.out.print("front-> ");
for(int i = this.front; i < values.length;i++) {
System.out.println(values[i]);
System.out.println("\t|\t "+ String.format("%, .4f", this.values[i].doubleValue()) + "\t|");
}
}
public static void main(String[] args) {
Queue myQueue = new Queue(4);
myQueue.enqueue(-2);
myQueue.enqueue(3);
myQueue.enqueue(1);
System.out.println("The queue has 3 items: -2, 3, 1");
myQueue.displayQueue();
myQueue.enqueue(8);
myQueue.enqueue(6);
System.out.println("The queue has 4 items: -2, 3, 1, 8");
myQueue.displayQueue();
myQueue.dequeue();
myQueue.dequeue();
System.out.println("The queue has 2 items: 1, 8");
myQueue.displayQueue();
myQueue.dequeue();
myQueue.dequeue();
myQueue.dequeue();
System.out.println("The queue is empty:");
myQueue.displayQueue();
}
}
###### 运行结果及报错内容 :
The queue has 3 items: -2, 3, 1
front-> null**Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Double.doubleValue()" because "this.values[i]" is null**
at Queue.displayQueue(Queue.java:43)
at Queue.main(Queue.java:52)
###### 我想要达到的结果:


这里结果不是0么,