code: public static <T> boolean addAll(Collection<T> self, Iterator<T> items) {
          boolean changed = false;
          while (items.hasNext()) {
              T next =  items.next();
              if (self.add(next)) changed = true;
          }
          return changed;
      }
docs: Adds all items from the iterator to the Collection.
  
  @param self the collection
  @param items the items to add
  @return true if the collection changed