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);
    }
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 ) ; }
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