使用arraycopy方法Java

时间:2018-09-02 12:24:58

标签: java arraycopy

我需要有关如何在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);

我只是觉得很难做到正确。

谢谢

1 个答案:

答案 0 :(得分:2)

旋转N元素剩余的k元素数组等效于N-k元素右边的相同数组。因此,您要做的就是在公式中将leftShifts替换为n - rightShifts

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