@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++;
}

@ 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 ++ ; }
removes the objects in the specified range from the start to the end , but not including the end index .
