Java 使用arraycopy方法实现右循环移位

Java 使用arraycopy方法实现右循环移位,java,arrays,Java,Arrays,我需要关于如何在Java中使用arraycopy方法的帮助 我有一个字符数组,例如: [a、b、c、d] 我想执行向右的循环移位,例如,如果循环移位是整数2,那么字符将向右移位两个位置,结果是: [c、d、a、b] 我想知道如何使用arraycopy方法实现这一点 我已经成功地实现了它,当涉及到将阵列向左移动一定数量的移位时,如下所示: System.arraycopy(sArray, leftShifts, leftShiftedArray, 0, n - leftShifts); Syste

我需要关于如何在Java中使用arraycopy方法的帮助

我有一个字符数组,例如:

[a、b、c、d]

我想执行向右的循环移位,例如,如果循环移位是整数2,那么字符将向右移位两个位置,结果是:

[c、d、a、b]

我想知道如何使用arraycopy方法实现这一点

我已经成功地实现了它,当涉及到将阵列向左移动一定数量的移位时,如下所示:

System.arraycopy(sArray, leftShifts, leftShiftedArray, 0, n - leftShifts);
System.arraycopy(sArray, 0, leftShiftedArray, n - leftShifts, leftShifts);
我只是觉得很难为正确的人做同样的事情


谢谢

N
元素数组向左旋转
k
元素相当于将同一数组向右旋转
N-k
元素。因此,您只需在公式中用
n-rightShifts
替换
leftShifts

System.arraycopy(sArray, n - rightShifts, rightShiftedArray, 0, rightShifts);
System.arraycopy(sArray, 0, rightShiftedArray, rightShifts, n - rightShifts);

我们会的,有两条路要走。您可以创建一个新方法,也可以观察到右移相当于在不同偏移处的左移。ie)对于长度
n
,左移
2
等于右移
n-2
。不要忘记取
右移
输入的模。如果大于
n
,则此操作将失败。