code: public <C extends Collection<V>> Map<K, C> groupingTo(Supplier<C> collectionFactory) {
          return grouping(Collectors.toCollection(collectionFactory));
      }
docs: Returns a {@link Map} where elements of this stream with the same key are
  grouped together. The resulting {@code Map} keys are the keys of this
  stream entries and the values are the collections of the corresponding
  values. The collections are created by the provided factory.
  
  <p>
  There are no guarantees on the type, mutability, serializability, or
  thread-safety of the {@code Map} object returned. If more control over
  the returned {@code Map} is required, use
  {@link #groupingTo(Supplier, Supplier)}.
  
  <p>
  This is a <a href="package-summary.html#StreamOps">terminal</a>
  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 Map} containing the elements of this stream
  @see Collectors#toCollection(Supplier)