簡體   English   中英

Queue類的toString()方法

[英]toString() method for Queue class

只是一個簡單的問題,如果我創建了一個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;
 }

當您進行隊列和雙端隊列操作時,應該在類中操作變量。 因此,在開始時它將等於0。在每個隊列或相應的出隊之后,您將對其進行++或-。

然后,這就是您在toString中使用的變量,用於定義循環的結束邊界。 要在此類的任何地方使用它,它也應該是一個實例變量。

編輯:添加代碼后,似乎應該是nitems

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM