public boolean addAll(Collection<? extends E> c) { if (c == this) throw new IllegalArgumentException(); boolean result = false; for (E val : c) { if (add(val)) result = true; } return result; }
public boolean addAll(Collection<? extends E> c) { if (c == null) throw new NullPointerException(); if (c == this) throw new IllegalArgumentException(); boolean modified = false; Iterator<? extends E> e = c.iterator(); while (e.hasNext()) { if (add(e.next())) modified = true; } return modified; }
  public boolean addAll(Collection<? extends E> c)  {    if (c == this)      throw new IllegalArgumentException();    boolean result = false;    for (E val : c)      {	if (add(val))	  result = true;      }    return result;  }