code: public static <K, V> MutableMap<V, K> reverseMapping(Map<K, V> map)
      {
          final MutableMap<V, K> reverseMap = UnifiedMap.newMap(map.size());
          MapIterate.forEachKeyValue(map, new Procedure2<K, V>()
          {
              public void value(K sourceKey, V sourceValue)
              {
                  reverseMap.put(sourceValue, sourceKey);
              }
          });
          return reverseMap;
      }
docs: Return a new map swapping key-value for value-key.
  If the original map contains entries with the same value, the result mapping is undefined,
  in that the last entry applied wins (the order of application is undefined).