title: Does guava have a method for turning an iterable into a map of unique types?
body: <p>I could not find a method in guava that converts a Collection (or Iterator/Iterable) to a Map, something like the following (wildcards omitted for clarity):</p>
  
  <pre><code>public static &lt;T, K, V&gt; Map&lt;K,V&gt; collectionSplitter(Collection&lt;T&gt; source, Function&lt;T,K&gt; kProducer, Function&lt;T,V&gt; vProducer){
      Map&lt;K,V&gt; map = Maps.newHashMap();
      for(T t : source){
          map.put(kProducer.apply(t), vProducer.apply(t));
      }
      return map;
  }
  </code></pre>
  
  <p>Is any existing method that does this? The closest I could find is Splitter.keyValueSplitter(), if T is a String.</p>