code: public static <T> List<T> collect(Object self, Closure<T> transform) {
          return (List<T>) collect(self, new ArrayList<T>(), transform);
      }
docs: Iterates through this aggregate Object transforming each item into a new value using the
  <code>transform</code> closure, returning a list of transformed values.
  Example:
  <pre class="groovyTestCase">def list = [1, 'a', 1.23, true ]
  def types = list.collect { it.class }
  assert types == [Integer, String, BigDecimal, Boolean]</pre>
  
  @param self      an aggregate Object with an Iterator returning its items
  @param transform the closure used to transform each item of the aggregate object
  @return a List of the transformed values
  @since 1.0