我的代码:
public E remove(int index){
if(index<0||index>=size)
throw new IllegalArgumentException("remove failed.");
E ret=data[index];
for(int i=index+1;i<size;i++)
data[i-1]=data[i];
size--;
data[size]=null;
if(size==data.length/4&&data.length/2!=0);
resize(data.length/2);
return ret;
}
老师的代码:
public E remove(int index){
if(index < 0 || index >= size)
throw new IllegalArgumentException("Remove failed. Index is illegal.");
E ret = data[index];
for(int i = index + 1 ; i < size ; i ++)
data[i - 1] = data[i];
size --;
data[size] = null; // loitering objects != memory leak
if(size == data.length / 4 && data.length / 2 != 0)
resize(data.length / 2);
return ret;
}
一模一样的代码啊,为什么我的运行起来就出现了数组越界!
找了整整一个小时完全没有找到区别,求指导