public static <T, K, V> Map<K, V> toMap(Iterable<? extends T> values, Function1<? super T, K> computeKeys, Function1<? super T, V> computeValues) {
return toMap(values.iterator(),computeKeys,computeValues);
}
public static <T, K, V> Map<K, V> toMap(Iterator<? extends T> values, Function1<? super T, K> computeKeys, Function1<? super T, V> computeValues) {
if (computeKeys == null)
throw new NullPointerException("computeKeys");
if (computeValues == null)
throw new NullPointerException("computeValues");
Map<K, V> result = Maps.newLinkedHashMap();
while(values.hasNext()) {
T t = values.next();
result.put(computeKeys.apply(t), computeValues.apply(t));
}
return result;
}