code: @Override
  	public int removeAtIndex(int index) {
  		RangeCheck(index);
  
  		modCount++;
  		int oldValue = elementData[index];
  
  		int numMoved = size - index - 1;
  		if (numMoved > 0)
  			System.arraycopy(elementData, index+1, elementData, index,
  							 numMoved);
  		elementData[--size] = 0; // Let gc do its work
  
  		return oldValue;
  	}
docs: Removes the element at the specified position in this list.
  Shifts any subsequent elements to the left (subtracts one from their
  indices).
  
  @param index the index of the element to removed.
  @return the element that was removed from the list.
  @throws    IndexOutOfBoundsException if index out of range <tt>(index
  &lt; 0 || index &gt;= size())</tt>.