将数字添加到数组的中点

时间:2013-02-27 18:41:40

标签: java arrays loops

如何将数字添加到数组的中点(没有arraylists),因此没有数字被覆盖,但最后一个数字不在数组中。我的代码:

 int midpoint = length/2;
 array[midpoint] = 4;
 for (int i = midpoint; i < array.length -1; i++)
 {
     array[i] = array[i+1];
 }          
 displayArray(array);

3 个答案:

答案 0 :(得分:2)

将所有项目从中点向右移动,然后添加中点。

如果我是你,我会反向迭代。

for (int i = array.length - 1; i > midpoint; i--)
{
    array[i] = array[i-1];
}

array[midpoint] = somenumber

答案 1 :(得分:1)

您可以使用System.arraycopy()来有效地转移元素:

System.arraycopy(array, midpoint, array, midpoint + 1, array.length - midpoint - 1);
array[midpoint] = 4;

您当前的方法存在的问题是,在将元素移动到最终位置之前,您将无可挽回地修改元素。

答案 2 :(得分:0)

使用

int midpoint = array.length/2;

for (int i = array.length-1 ; i> midpoint; i--) { 
  array[i] = array[i-1]; 
}

array[midpoint] = 4; 
displayArray(array);