我有一个具有1 2 3 4 5值的数组。
array a = [ 1 , 2, 3, 4, 5]
现在我想以循环方式遍历它。像我想打印2 3 4 5 1或3 4 5 1 2或5 1 2 3 4等等。有什么 算法 吗?
编辑: 我想以循环方式打印所有组合。我不想在初始阶段说明起点。
int start = ... for (int i = 0; i < a.length; i++) { System.out.println(a[(start + i) % a.length]); }
(如果要从向下迭代数组start,start + i请start - i在数组下标表达式中更改为。)
start
start + i
start - i
我应该注意,就执行速度而言,这可能不是表达循环的最有效方法。但是,差异很小,并且 很可能无关紧要 。
更相关的一点是,%以这种方式使用是否会提供更具可读性的代码。我认为确实如此,但这也许是因为我之前已经看过/使用过这种特殊的习惯用法。
%