次のコードがあります。
public void add (int value)
{
if (numElements == list.length)
System.out.println("Can't add, list is full");
else
{
int hold=0;
for (int j = 0; j < numElements; j++)
{
int temp = list[j];
if (temp <= value)
{
hold = j;
}
}
System.arraycopy(list,hold, list, hold+1 ,numElements-hold);
list[hold] = value;
for (int i = 0; i< list.length; i++)
System.out.print(list[i] + ", ");
System.out.println();
numElements++;
}
}
目的は、配列内の整数を最小から最大の正しい位置に配置することです (挿入ソート)。
次のテストコードを実行すると:
myList.add(100);
myList.add(50);
myList.add(200);
myList.add(25);
結果の配列は次のとおりです。[25,50,200,100]
メソッドが呼び出されるたびにデバッグすると、配列は次のようになります。
[100, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[50、100、0、0、0、0、0、0、0、0]
[50、200、100、0、0、0、0、0、0、0]
[25、50、200、100、0、0、0、0、0、0]
ご覧のとおり、200 を入力しようとするとエラーが発生します。
これを修正するのに助けが必要です...ありがとう!