1

我构建了这段代码,它以队列方式显示数组的所有条目。问题是我被告知可以在没有for将内容倒回i为 0 的语句的情况下完成此操作,但我不知道如何操作。

这还能怎么做?

   public void display()
   {
       int i = frontIndex;

       while(true)
       {
           if (i == numberOfItems)
               i = 0;

           System.out.print(array[i++] + " ");

           if (i == rearIndex + 1)
               break;
       }
   }
4

3 回答 3

5

您可以使用%运算符并打印i % numberOfItems

它没有经过测试,但它应该类似于以下内容:

for (int i = frontIndex; i % numberOfItems != rearIndex+1; i++) { 
   System.out.print(array[(i++) % numberOfItems)] + " ");
}

想法是(array.length + k) % array.length == k,所以使用%运算符,实际上相当于将索引重置i回 0。

于 2012-10-11T09:33:51.930 回答
0

Arrays.toString()如果您只是显示数组的内容,我会使用方法而不是您的代码

于 2012-10-11T09:29:30.563 回答
0

我认为您应该使用LinkedListQueue界面。为了更好地理解我,请查看LinkedListjavadocsQueue

于 2012-10-11T09:35:51.093 回答