code: public final <C extends Collection<? super E>> C copyInto(C collection) {
      checkNotNull(collection);
      if (iterable instanceof Collection) {
        collection.addAll(Collections2.cast(iterable));
      } else {
        for (E item : iterable) {
          collection.add(item);
        }
      }
      return collection;
    }
docs: Copies all the elements from this fluent iterable to {@code collection}. This is equivalent to
  calling {@code Iterables.addAll(collection, this)}.
  
  @param collection the collection to copy elements to
  @return {@code collection}, for convenience
  @since 14.0