public int addAllAbsent(Collection c){
  int numNew=c.size();
  if (numNew == 0)   return 0;
synchronized (this) {
    Object[] elements=getArray();
    int len=elements.length;
    Object[] temp=new Object[numNew];
    int added=0;
    for (Iterator itr=c.iterator(); itr.hasNext(); ) {
      Object e=itr.next();
      if (indexOf(e,elements,0,len) < 0 && indexOf(e,temp,0,added) < 0)       temp[added++]=e;
    }
    if (added != 0) {
      Object[] newElements=new Object[len + added];
      System.arraycopy(elements,0,newElements,0,len);
      System.arraycopy(temp,0,newElements,len,added);
      setArray(newElements);
    }
    return added;
  }
}

public int addAllAbsent ( Collection c ) { int numNew = c . size ( ) ; if ( numNew == 0 ) return 0 ; synchronized ( this ) { Object [ ] elements = getArray ( ) ; int len = elements . length ; Object [ ] temp = new Object [ numNew ] ; int added = 0 ; for ( Iterator itr = c . iterator ( ) ; itr . hasNext ( ) ; ) { Object e = itr . next ( ) ; if ( indexOf ( e , elements , 0 , len ) < 0 && indexOf ( e , temp , 0 , added ) < 0 ) temp [ added ++ ] = e ; } if ( added != 0 ) { Object [ ] newElements = new Object [ len + added ] ; System . arraycopy ( elements , 0 , newElements , 0 , len ) ; System . arraycopy ( temp , 0 , newElements , len , added ) ; setArray ( newElements ) ; } return added ; } }
appends all of the elements in the specified collection that are not already contained in this list , to the end of this list , in the order that they are returned by the specified collection ' s iterator .
