0
我有以下代碼:Java方法使用arraycopy不工作
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試圖放入時發生的錯誤。
我需要一些幫助解決這個問題......謝謝!