移动数组元素 java

Shift array elements java

我有移动 arr 元素的方法:

 private static int[] shiftElements(int[] arr, int n) {
        for (int i = 0; i < arr.length; i++) {
            arr[i+n] = arr[i];
        }
        return arr;
    }

n - amount of shifting.

当我执行这段代码时出现异常:

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6

据我了解程序需要更多 space 来包含另一个项目。但我不需要添加 更多项目,我需要转移已经存在。使用 n 参数,如果参数为负,则所有数组向左移动,如果为正,则向右移动,如果为零 - 什么都不会发生。

Examples


ORIGINAL ARRAY: 1,3,5,6,8,10

example: 
n = 2
arr: 8,10,1,3,5,6

How to achieve it?

您的异常来自这一行:

arr[i+n] = arr[i];

你得到一个异常,因为 i + n > arr.length.

根据您的示例,您希望将最终位于数组外部的元素添加到前面。

我不会为你做作业,但你可能想使用 if(...)。或者 mod 表达式...