读书人

一个java初学者有关问题求各路前辈指

发布时间: 2013-07-08 14:13:00 作者: rapoo

一个java菜鸟问题,求各路前辈指教
一个java初学者有关问题,求各路前辈指教

我想知道第三个java为什么不能删除 删除
[解决办法]
你这题在于理解remove()方法出错了。你先看下remove()方法的源码:

 public E remove(int index) {
rangeCheck(index);

modCount++;
E oldValue = elementData(index);

int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[--size] = null; // Let gc do its work

return oldValue;
}


remove()方法执行后,它的数组下标是会变化的,比如你删除下标为0的元素,那么原先下边为1的元素会变成下标为0。就跟排队一样,后面的要往前面挤。而你是for循环中,i是不断加1的。所以才会出现这样的错误。

读书人网 >J2SE开发

热点推荐