我需要有关如何在 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 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
将N
-element 数组向左旋转一个元素k
相当于将同一个数组向右旋转一个N-k
元素。因此,所有你需要做的是替换leftShifts
用n - rightShifts
在公式中:
System.arraycopy(sArray, n - rightShifts, rightShiftedArray, 0, rightShifts); System.arraycopy(sArray, 0, rightShiftedArray, rightShifts, n - rightShifts);
添加回答
举报
0/150
提交
取消