如何倒带队列?

Hel*_*der 1 java arrays queue

我构建了这个代码,以队列方式显示数组的所有条目.问题是,我被告知这可以在没有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;
       }
   }
Run Code Online (Sandbox Code Playgroud)

ami*_*mit 5

您可以使用%操作员并打印i % numberOfItems:

它没有经过测试,但它应该是这样的:

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

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