队列的 toString() 方法 class
toString() method for Queue class
只是一个简单的问题,如果我创建了一个 Queue
class 并初始化了这个
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
有它,它似乎无法按我想要的方式工作,而且我知道它不是 nItems
或 maxSize
,因为那样会打印整个 queue
,包括空槽,我只想要更新的 queue
。
我知道对于 Stack
,您只能打印到 top
变量,但我对 Queue
class.
更加困惑
这些是我的 enqueue
和 dequeue
方法:
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;
}
当你执行队列和双端队列时,你应该在 class 中操作一个变量。所以一开始它会等于 0。在每次排队或出队后,您将相应地 ++ 或 -- 它。
那么这是您在 toString 中用来定义循环结束边界的变量。要像这样在 class 中的任何地方使用它,它也应该是一个实例变量。
编辑:
在您添加的代码之后,似乎应该是 nitems
只是一个简单的问题,如果我创建了一个 Queue
class 并初始化了这个
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
有它,它似乎无法按我想要的方式工作,而且我知道它不是 nItems
或 maxSize
,因为那样会打印整个 queue
,包括空槽,我只想要更新的 queue
。
我知道对于 Stack
,您只能打印到 top
变量,但我对 Queue
class.
这些是我的 enqueue
和 dequeue
方法:
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;
}
当你执行队列和双端队列时,你应该在 class 中操作一个变量。所以一开始它会等于 0。在每次排队或出队后,您将相应地 ++ 或 -- 它。
那么这是您在 toString 中用来定义循环结束边界的变量。要像这样在 class 中的任何地方使用它,它也应该是一个实例变量。
编辑:
在您添加的代码之后,似乎应该是 nitems