Java 使用arraycopy方法实现右循环移位
我需要关于如何在Java中使用arraycopy方法的帮助 我有一个字符数组,例如: [a、b、c、d] 我想执行向右的循环移位,例如,如果循环移位是整数2,那么字符将向右移位两个位置,结果是: [c、d、a、b] 我想知道如何使用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
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
,则此操作将失败。