code: public static <T> Collection<Collection<T>> split(T[] self, @ClosureParams(FirstParam.Component.class) Closure closure) {
          List<T> accept = new ArrayList<T>();
          List<T> reject = new ArrayList<T>();
          Iterator<T> iter = new ArrayIterator<T>(self);
          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.
  
  @param self    an Array
  @param closure a closure condition
  @return a List whose first item is the accepted values and whose second item is the rejected values
  @since 2.5.0