我构建此代码,以队列方式显示数组的所有条目。问题是我被告知这可以在没有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;
}
}
答案 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
。为了更好地了解我,请查看LinkedList
和Queue
javadocs 。