数组中的java shift元素

时间:2014-06-11 03:22:15

标签: java arrays loops shift

嘿我试图将元素向前移动,将数组中的最后一个元素发送到data [0]。我做了相反的方向,但我似乎无法在朝这个方向发现我的错误。

Pos是用户输入的换班时间金额 temp是临时持有人。 data是数组

if(pos > 0)
{
   do
   {
        temp = data[data.length -1];

        for(int i =0; i < data.length; i++)
        {
           if(i == data.length-1)
           {
              data[0] = temp; 
           }
           else
           {
               data[i+1] = data[i];
           }
        }

        pos--;
   } while(pos > 0);
}

感谢。

2 个答案:

答案 0 :(得分:0)

一个好主意是使用System.arraycopy

请参阅此问题Java, Shifting Elements in an Array

答案 1 :(得分:0)

试试这个

    int temp = data[data.length - 1];
    for (int i = data.length - 1; i > 0; i--) {
        data[i] = data[i - 1];
    }
    data[0] = temp;

或者

    int temp = data[data.length - 1];
    System.arraycopy(data, 0, data, 1, data.length - 1);
    data[0] = temp;