code: public final <K, V> ListMultimap<K, V> toMultimap(
              final Function<? super T, ? extends K> keyFunction,
              final Function<? super T, ? extends V> valueFunction) {
          return ImmutableListMultimap.copyOf(toMultimap(keyFunction, valueFunction,
                  ArrayListMultimap.<K, V>create()));
      }
docs: Terminal operation returning an immutable ListMultimap indexing the elements of this Stream
  as {@code <key, value>} pairs computed using the supplied Functions. The supplied key and
  value Functions are called for each element, producing the keys and values to store. If a
  null key or value are produced, the element is discarded. Use {@link Functions#identity()}
  in case no transformation is required to extract the key and/or the value.
  
  @param keyFunction
  the key function
  @param valueFunction
  the value function
  @param <K>
  the type of key
  @param <V>
  the type of value
  @return an immutable ListMultimap