public E remove(int index) {
//检查下标是否合法
rangeCheck(index);
//修改次数
modCount++;
//要删除的值
E oldValue = elementData(index);
//删除后数组的大小
int numMoved = size - index - 1;
//大于零(还有其余元素)的话,把index后面的元素都向前移动一位
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index, numMoved);
//接触最后一个元素的引用
elementData[--size] = null; // clear to let GC do its work
return oldValue;
}