question: @ Override protected void removeRange ( int start , int end ) { if ( start < 0 ) { throw new IndexOutOfBoundsException ( "" + start ) ; } else if ( end > size ) { throw new IndexOutOfBoundsException ( "" + end + " out of: " + size ) ; } else if ( start > end ) { throw new IndexOutOfBoundsException ( "" + start + " out of: " + end ) ; } if ( start == end ) { return ; } if ( end == size ) { Arrays . fill ( array , firstIndex + start , firstIndex + size , null ) ; } else if ( start == 0 ) { Arrays . fill ( array , firstIndex , firstIndex + end , null ) ; firstIndex += end ; } else { System . arraycopy ( array , firstIndex + end , array , firstIndex + start , size - end ) ; int lastIndex = firstIndex + size ; int newLast = lastIndex + start - end ; Arrays . fill ( array , newLast , lastIndex , null ) ; } size -= end - start ; modCount ++ ; }
target:  Removes the objects in the specified range from the start to the end, but not including the end index.