code: public static <K, V, V2, R extends Map<K, V2>> R collectValues(
              Map<K, V> map,
              final Function2<? super K, ? super V, ? extends V2> function,
              final R target)
      {
          MapIterate.forEachKeyValue(map, new Procedure2<K, V>()
          {
              public void value(K key, V value)
              {
                  target.put(key, function.value(key, value));
              }
          });
  
          return target;
      }
docs: For each key and value of the map, the function is evaluated with the key and value as the parameter.
  The results of these evaluations are collected into the target map.