code: public static <T,K,V> List<T> collect(Map<K,V> self, @ClosureParams(MapEntryOrKeyValue.class) Closure<T> transform) {
          return (List<T>) collect(self, new ArrayList<T>(self.size()), transform);
      }
docs: Iterates through this Map transforming each map entry into a new value using the <code>transform</code> closure
  returning a list of transformed values.
  <pre class="groovyTestCase">assert [a:1, b:2].collect { key, value {@code ->} key*value } == ["a", "bb"]
  assert [3:20, 2:30].collect { entry {@code ->} entry.key * entry.value } == [60, 60]</pre>
  
  @param self    a Map
  @param transform the transformation closure which can take one (Map.Entry) or two (key, value) parameters
  @return the resultant list of transformed values
  @since 1.0