@@ -72,26 +72,30 @@ public Chain<List<T>> dropRightWhile(final Predicate<T> pred) {
7272 return new Chain <List <T >>($ .dropRightWhile (value (), pred ));
7373 }
7474
75- public Chain <List <Object >> fill (Object value ) {
75+ public Chain <List <Object >> fill (final Object value ) {
7676 return new Chain <List <Object >>($ .fill ((List <Object >) value (), value ));
7777 }
7878
79- public Chain <List <Object >> fill (Object value , Integer start , Integer end ) {
79+ public Chain <List <Object >> fill (final Object value , final Integer start , final Integer end ) {
8080 return new Chain <List <Object >>($ .fill ((List <Object >) value (), value , start , end ));
8181 }
8282
8383 public Chain <List <?>> flattenDeep () {
8484 return new Chain <List <?>>($ .flattenDeep ((List <?>) value ()));
8585 }
8686
87- public Chain <List <Object >> pull (Object ... values ) {
87+ public Chain <List <Object >> pull (final Object ... values ) {
8888 return new Chain <List <Object >>($ .pull ((List <Object >) value (), values ));
8989 }
9090
91- public Chain <List <Object >> pullAt (Integer ... indexes ) {
91+ public Chain <List <Object >> pullAt (final Integer ... indexes ) {
9292 return new Chain <List <Object >>($ .pullAt ((List <Object >) value (), indexes ));
9393 }
9494
95+ public Chain <List <T >> remove (final Predicate <T > pred ) {
96+ return new Chain <List <T >>($ .remove (value (), pred ));
97+ }
98+
9599 public Chain <List <T >> xor (final List <T > list ) {
96100 return new Chain <List <T >>($ .xor (value (), list ));
97101 }
@@ -221,7 +225,7 @@ public List<Object> pull(Object ... values) {
221225 return pull ((List <Object >) getIterable (), values );
222226 }
223227
224- public static List <Object > pullAt (final List <Object > list , Integer ... indexes ) {
228+ public static List <Object > pullAt (final List <Object > list , final Integer ... indexes ) {
225229 final List <Object > result = newArrayList ();
226230 final List <Integer > indexesList = Arrays .asList (indexes );
227231 int index = 0 ;
@@ -236,10 +240,26 @@ public static List<Object> pullAt(final List<Object> list, Integer ... indexes)
236240 return result ;
237241 }
238242
239- public List <Object > pullAt (Integer ... indexes ) {
243+ public List <Object > pullAt (final Integer ... indexes ) {
240244 return pullAt ((List <Object >) getIterable (), indexes );
241245 }
242246
247+ public static <T > List <T > remove (final List <T > list , final Predicate <T > pred ) {
248+ final List <T > result = newArrayList ();
249+ for (final Iterator <T > iterator = list .iterator (); iterator .hasNext (); ) {
250+ final T object = iterator .next ();
251+ if (pred .apply (object )) {
252+ result .add (object );
253+ iterator .remove ();
254+ }
255+ }
256+ return result ;
257+ }
258+
259+ public List <T > remove (final Predicate <T > pred ) {
260+ return remove ((List <T >) getIterable (), pred );
261+ }
262+
243263 public static <T > List <T > xor (final List <T > ... lists ) {
244264 int index = -1 ;
245265 int length = lists .length ;
0 commit comments