Java 如何将顶部列表的最后一个元素移动N次

Java 如何将顶部列表的最后一个元素移动N次,java,arrays,Java,Arrays,我得到了一个整数数组,我想让这个数组的最后一个元素在顶部移动N次,如下所示: int[] array = {1, 2, 3, 4, 5}; int[] tab = new int[5]; tab[0] = 1; tab[1] = 2; tab[2] = 4; tab[3] = 5; tab[4] = 6; int[] secondTab = new int[5]; int N = 3; int j = 0; for (int i=0; i<tab.length-1; i++){

我得到了一个整数数组,我想让这个数组的最后一个元素在顶部移动N次,如下所示:

int[] array = {1, 2, 3, 4, 5};
int[] tab = new int[5];
tab[0] = 1;
tab[1] = 2;
tab[2] = 4;
tab[3] = 5;
tab[4] = 6;

int[] secondTab = new int[5];
int N = 3;
int j = 0;

for (int i=0; i<tab.length-1; i++){
    secondTab[i] = tab[(tab.length-1)-N];
    N--;
    if (secondTab[i+1]==0){
        secondTab[i+1] = tab[j];
    }
}
现在,最后一个元素将移动3次,这应该是预期的结果:

3, 4, 5, 1, 2
我试着这样做:

int[] array = {1, 2, 3, 4, 5};
int[] tab = new int[5];
tab[0] = 1;
tab[1] = 2;
tab[2] = 4;
tab[3] = 5;
tab[4] = 6;

int[] secondTab = new int[5];
int N = 3;
int j = 0;

for (int i=0; i<tab.length-1; i++){
    secondTab[i] = tab[(tab.length-1)-N];
    N--;
    if (secondTab[i+1]==0){
        secondTab[i+1] = tab[j];
    }
}
int[]tab=newint[5];
表[0]=1;
表[1]=2;
表[2]=4;
表[3]=5;
表[4]=6;
int[]secondTab=新int[5];
int N=3;
int j=0;

对于(int i=0;i如果要向右移动
N次
,则意味着
i
-th位置的元素将位于
(i+N)%tab。第
-th位置的长度:

for (int i = 0; i < tab.length; i++) {
    secondTab[(i+N)%tab.length] = tab[i];
}
for(int i=0;i
如果要移动原始数组中的元素,可以尝试以下操作:

int[] array = {1, 2, 3, 4, 5};

int nbShift = 1; // the number of desired shift
for(int i = -1; i < nbShift; i++){
    int f = array[0];
    for(int j = 0; j < array.length -1 ; j++){
        array[j] = array[j + 1]; 
    }
    array[array.length - 1] = f;
}
int[]数组={1,2,3,4,5};
int nbShift=1;//所需的移位数
for(int i=-1;i
公共静态void main(字符串[]args){
最终int[]测试={1,2,3,4};
移位次数(试验,2);
用于(最终int i:测试){
系统输出打印LN(i);
}
}
公共静态无效移位次数(int[]数组,int numShifts){
int timeshift=0;
while(时移