code: public static <T> Collection<Collection<T>> split(Collection<T> self, @ClosureParams(FirstParam.FirstGenericType.class) Closure closure) {
          Collection<T> accept = createSimilarCollection(self);
          Collection<T> reject = createSimilarCollection(self);
          Iterator<T> iter = self.iterator();
          return split(closure, accept, reject, iter);
      }
docs: Splits all items into two collections based on the closure condition.
  The first list contains all items which match the closure expression.
  The second list all those that don't.
  <p>
  Example usage:
  <pre class="groovyTestCase">assert [[2,4],[1,3]] == [1,2,3,4].split { it % 2 == 0 }</pre>
  
  @param self    a Collection of values
  @param closure a closure condition
  @return a List whose first item is the accepted values and whose second item is the rejected values
  @since 1.6.0