如何将数字添加到数组的中点(没有arraylists),因此没有数字被覆盖,但最后一个数字不在数组中。我的代码:
int midpoint = length/2;
array[midpoint] = 4;
for (int i = midpoint; i < array.length -1; i++)
{
array[i] = array[i+1];
}
displayArray(array);
答案 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);