System.arraycopy(data, index+1, data, index, shifted);
remove(index); return true;
  public Object remove(int index)   {    if (index >= size)      throw new BasicIndexOutOfBoundsException(index, size);    ++modCount;    Object oldObject = data[index];    int shifted = size - index - 1;    if (shifted > 0)    {      System.arraycopy(data, index+1, data, index, shifted);    }    // Don't hold onto a duplicate reference to the last object.    //    data[--size] = null;     didRemove(index, oldObject);    didChange();    return oldObject;  }