使用数组复制方法 java 的右循环移位



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

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

[阿、乙、丙、丁]

我想向右执行循环移位,例如,如果圆移是整数 2,则字符将向右移动两个位置,结果为:

[中、丁、甲、乙]

我想知道如何使用 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);

相关内容

  • 没有找到相关文章