如何倒带队列?

时间:2012-10-11 09:26:28

标签: 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;
       }
   }

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

如果您只是显示数组的内容

,我会使用Arrays.toString()方法代替您的代码

答案 2 :(得分:0)

我认为您应该在LinkedList界面下使用Queue。为了更好地了解我,请查看LinkedListQueue javadocs

相关问题