一个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的。所以才会出现这样的错误。
阅读