通过数组重新加载

时间:2014-12-29 01:56:52

标签: java arrays

所以,让我说我有一个长度为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

3 个答案:

答案 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