Queue类的toString()方法

时间:2015-05-24 17:25:25

标签: java queue

只是一个简单的问题,如果我创建了一个Queue类并初始化了这个

Queue queue = new Queue(5)

在main方法中,然后相应地排队并出列,

使用以下实例变量和toString()方法:

 private int maxSize;
 private Planes[] queArray; 
 private int front;
 private int rear;
 private int nItems;

 public String toString()
 {
   String result = "[";
   for(int i = 0; i <= rear; i++)
   {
     result += " " + queArray[i];

     if(i <= rear - 1)
       result += ",";
   }
   result += " ]";
   return result;
 }//toString`

我在for循环中停止了哪个变量:

for(int i = 0; i <= rear; i++)

现在我在rear处找到它,这似乎不符合我的要求,而且我知道它不是nItemsmaxSize,因为它会打印出来整个queue,包括空插槽,我只想要更新的queue。 我知道对于Stack,您只打印到top变量,但我对Queue类更加困惑。

这些是我的enqueuedequeue方法:

 public void enqueue(Plane name)
 {
   if(rear == maxSize-1)
   {
     rear = -1;
   }
   rear++;
   queArray[rear] = name;
   nItems++;
 }

 public Plane dequeue()
 {
   Plane temp = queArray[front];
   front++;
   if(front == maxSize)
   {
     front = 0;
   }
   nItems--;
   return temp;
 }

1 个答案:

答案 0 :(得分:0)

当你进行队列和双端队列时,你应该操纵类中的变量。所以在开始时它将等于0.在每个队列或相应的队列后,你将++或 - 它。

然后,这是您在toString中使用的变量,用于定义循环的结束边界。要在类中的任何地方使用它,它也应该是一个实例变量。

编辑: 在您添加的代码之后,似乎应该是nitems