code: public static <K, V> Map<K, V> toInvertedMap(Iterable<? extends K> keys, Function1<? super K, V> computeValues) {
  		return IteratorExtensions.toInvertedMap(keys.iterator(), computeValues);
  	}
docs: Returns a map for which the {@link Map#values} are computed by the given function, and each key is an element in
  the given {@code keys}. If the iterable contains equal keys more than once, the last one will be contained in the
  map. The map is computed eagerly. That is, subsequent changes in the keys are not reflected by the map.
  
  @param keys
  the keys to use when constructing the {@code Map}. May not be <code>null</code>.
  @param computeValues
  the function used to produce the values for each key. May not be <code>null</code>.
  @return a map mapping each entry in the given iterable to the corresponding result when evaluating the function
  {@code computeValues}.