所以,让我说我有一个长度为5的数组(让我们称之为myArray [5])。如果我向myArray [3]添加4,比如myArray [3 + 4],我怎样才能让它再次循环通过myArray以便它成为myArray [2]?
例)
myArray[3]
myArray[4] //+1
myArray[0] //+2
myArray[1] //+3
myArray[2] //+4
答案 0 :(得分:4)
只需使用数组长度进行模运算:
int index = /* index you are using */;
myArray[index % myArray.length]
答案 1 :(得分:2)
您可以使用模数。 index % myArray.length
喜欢
int[] myArray = new int[10];
for (int i = 10; i < 20; i++) {
System.out.println(i % myArray.length);
}
输出为0 - 9(含)。
答案 2 :(得分:1)
如果你想以循环方式循环遍历数组,那么模%
运算符就是你的选择。如果将它与Java 8流API结合使用:解决方案可能如下所示。
int[] myArray = {1, 2, 3, 4, 5}; // Setup the array
int startIndex = 3; // Start index as per the OP's example
int addIndex = 4; // Add as per the OP's example
// Loop via streams - no external looping
IntStream.range(startIndex, startIndex + addIndex)
.map(i -> myArray[i % myArray.length]) // circular loop
.forEach(System.out::println /* Do your stuff */); // do your stuff
有关更多示例,请参阅this answer