配列の中間点に数値を追加する方法(配列リストなし)で、数値は上書きされませんが、最後の数値は配列に含まれません。私のコード:
int midpoint = length/2;
array[midpoint] = 4;
for (int i = midpoint; i < array.length -1; i++)
{
array[i] = array[i+1];
}
displayArray(array);
中点からすべてのアイテムを右にシフトしてから、中点を追加します。
私があなただったら、逆に繰り返します。
for (int i = array.length - 1; i > midpoint; i--)
{
array[i] = array[i-1];
}
array[midpoint] = somenumber
System.arraycopy()
要素を効率的にシフトするために使用できます。
System.arraycopy(array, midpoint, array, midpoint + 1, array.length - midpoint - 1);
array[midpoint] = 4;
現在のアプローチの問題は、要素を最終的な位置に移動する前に、要素を取り返しのつかないほど変更することです。
使用する
int midpoint = array.length/2;
for (int i = array.length-1 ; i> midpoint; i--) {
array[i] = array[i-1];
}
array[midpoint] = 4;
displayArray(array);