Java:Shift/Rotate对象数组
我的问题其实应该很简单: 我有一个玩家的对象数组。(玩家[]) 我希望有一个函数可以旋转此数组直到索引:
public void rotateArray(Object[] array, int index)
这将改变
{Player1, Player2, Player3, Player4, Player5}
索引为2到:
{Player3, Player4, Player5, Player1, Player2}
但我想防止引用出现问题。 我试过这个系统。arraycopy()但要么是因为我太笨而无法让它工作,要么就是因为我使用了错误的方法
# 1 楼答案
为了使用arraycopy,需要制作阵列的副本,我建议使用arraycopy,因为它应该是最快的。避免复制的唯一原因是阵列非常大且内存很紧
# 2 楼答案
此单线解决方案将阵列旋转到位,具有恒定的额外内存和线性时间:
# 3 楼答案
对于大型阵列,更有效的解决方案是使用O(1)空间: