public boolean addAll(int index,Collection<? extends E> c){
  rangeCheckForAdd(index);
  Object[] a=c.toArray();
  int numNew=a.length;
  ensureCapacityInternal(size + numNew);
  int numMoved=size - index;
  if (numMoved > 0)   System.arraycopy(elementData,index,elementData,index + numNew,numMoved);
  System.arraycopy(a,0,elementData,index,numNew);
  size+=numNew;
  return numNew != 0;
}

public boolean addAll ( int index , Collection < ? extends E > c ) { rangeCheckForAdd ( index ) ; Object [ ] a = c . toArray ( ) ; int numNew = a . length ; ensureCapacityInternal ( size + numNew ) ; int numMoved = size - index ; if ( numMoved > 0 ) System . arraycopy ( elementData , index , elementData , index + numNew , numMoved ) ; System . arraycopy ( a , 0 , elementData , index , numNew ) ; size += numNew ; return numNew != 0 ; }
inserts all of the elements in the specified collection into this list , starting at the specified position . shifts the element currently at that position ( if any ) and any subsequent elements to the right ( increases their indices ) . the new elements will appear in the list in the order that they are returned by the specified collection ' s iterator .
