code: public final <V> ImmutableMap<T, V> toMap(Function<? super T, V> valueFunction) {
          return Maps.toMap(this, valueFunction::apply);
      }
docs: Returns an immutable map whose keys are the distinct elements of this {@code FluentIterable}
  and whose value for each key was computed by {@code valueFunction}. The map's iteration order
  is the order of the first appearance of each key in this iterable.
  
  <p>When there are multiple instances of a key in this iterable, it is unspecified whether
  {@code valueFunction} will be applied to more than one instance of that key and, if it is,
  which result will be mapped to that key in the returned map.