code: public static <S,T> List<T> collect(Collection<S> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure<T> transform) {
          return (List<T>) collect(self, new ArrayList<T>(self.size()), transform);
      }
docs: Iterates through this collection transforming each entry into a new value using the <code>transform</code> closure
  returning a list of transformed values.
  <pre class="groovyTestCase">assert [2,4,6] == [1,2,3].collect { it * 2 }</pre>
  
  @param self      a collection
  @param transform the closure used to transform each item of the collection
  @return a List of the transformed values
  @since 1.0