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试图放入时发生的错误。
我需要一些帮助解决这个问题......谢谢!