code: public <U, C extends Collection<U>> C toFlatCollection(Function<? super T, ? extends Collection<U>> mapper,
              Supplier<C> supplier) {
          return map(mapper).collect(supplier, Collection::addAll, Collection::addAll);
      }
docs: Returns a collection created by provided supplier function which contains
  all the elements of the collections generated by provided mapper from
  each element of this stream.
  
  <p>
  This is a <a href="package-summary.html#StreamOps">terminal</a>
  operation.
  
  <p>
  This method is equivalent to
  {@code flatCollection(mapper).toCollection(supplier)}, but may work
  faster.
  
  @param <U> the type of the elements of the resulting collection
  @param <C> the type of the resulting collection
  @param mapper a <a
  href="package-summary.html#NonInterference">non-interfering </a>,
  <a href="package-summary.html#Statelessness">stateless</a>
  function to apply to each element which produces a
  {@link Collection} of new values
  @param supplier a supplier for the resulting collection
  @return the new collection.
  @since 0.3.7