code: public <C extends Collection<T>> C toCollection(Supplier<C> collectionFactory) {
          return rawCollect(Collectors.toCollection(collectionFactory));
      }
docs: Returns a {@link Collection} containing the elements of this stream. The
  {@code Collection} is created by the provided factory.
  
  <p>
  This is a terminal operation.
  
  @param <C> the type of the resulting {@code Collection}
  @param collectionFactory a {@code Supplier} which returns a new, empty
  {@code Collection} of the appropriate type
  @return a {@code Collection} containing the elements of this stream
  @see Collectors#toCollection(Supplier)