code: public <K> Map<K, T> asMap(Function<T, K> keyMaker) {
          Map<K, T> map = Maps.newHashMap();
          foreach(Funcs.addTo(map, keyMaker));
          return map;
      }
docs: Returns a map whose values are the delegate items and
  whose keys are the result of applying <code>keyMaker</code> to each value.