docs: public static <K, V> Map<K, List<V>> groupBy(Iterator<? extends V> values,
  			Function1<? super V, ? extends K> computeKeys) {
  		if (computeKeys == null)
  			throw new NullPointerException("computeKeys");
  		Map<K, List<V>> result = Maps.newLinkedHashMap();
  		while(values.hasNext()) {
  			V v = values.next();
  			K key = computeKeys.apply(v);
  			List<V> grouped = result.get(key);
  			if (grouped == null) {
  				grouped = new ArrayList<V>();
  				result.put(key, grouped);
  			}
  			grouped.add(v);
  		}
  		return result;
  	}