一尘不染

以循环方式遍历Java数组

java

我有一个具有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等等。有什么 算法 吗?

编辑: 我想以循环方式打印所有组合。我不想在初始阶段说明起点。


阅读 160

收藏
2020-12-03

共1个答案

一尘不染

int start = ...
for (int i = 0; i < a.length; i++) {
    System.out.println(a[(start + i) % a.length]);
}

(如果要从向下迭代数组startstart + istart - i在数组下标表达式中更改为。)

我应该注意,就执行速度而言,这可能不是表达循环的最有效方法。但是,差异很小,并且 很可能无关紧要

更相关的一点是,%以这种方式使用是否会提供更具可读性的代码。我认为确实如此,但这也许是因为我之前已经看过/使用过这种特殊的习惯用法。

2020-12-03