@@ -87,6 +87,10 @@ public Chain<List<?>> flattenDeep() {
8787 public Chain <List <Object >> pull (Object ... values ) {
8888 return new Chain <List <Object >>($ .pull ((List <Object >) value (), values ));
8989 }
90+
91+ public Chain <List <Object >> pullAt (Integer ... indexes ) {
92+ return new Chain <List <Object >>($ .pullAt ((List <Object >) value (), indexes ));
93+ }
9094 }
9195
9296 public static Chain chain (final String item ) {
@@ -200,7 +204,7 @@ public List<T> flattenDeep() {
200204
201205 public static List <Object > pull (final List <Object > list , Object ... values ) {
202206 final List <Object > valuesList = Arrays .asList (values );
203- for (Iterator <Object > iterator = list .iterator (); iterator .hasNext (); ) {
207+ for (final Iterator <Object > iterator = list .iterator (); iterator .hasNext (); ) {
204208 final Object object = iterator .next ();
205209 if (valuesList .contains (object )) {
206210 iterator .remove ();
@@ -213,6 +217,25 @@ public List<Object> pull(Object ... values) {
213217 return pull ((List <Object >) getIterable (), values );
214218 }
215219
220+ public static List <Object > pullAt (final List <Object > list , Integer ... indexes ) {
221+ final List <Object > result = newArrayList ();
222+ final List <Integer > indexesList = Arrays .asList (indexes );
223+ int index = 0 ;
224+ for (final Iterator <Object > iterator = list .iterator (); iterator .hasNext (); ) {
225+ final Object object = iterator .next ();
226+ if (indexesList .contains (index )) {
227+ result .add (object );
228+ iterator .remove ();
229+ }
230+ index += 1 ;
231+ }
232+ return result ;
233+ }
234+
235+ public List <Object > pullAt (Integer ... indexes ) {
236+ return pullAt ((List <Object >) getIterable (), indexes );
237+ }
238+
216239 public static void main (String ... args ) {
217240 final String message = "Underscore-java-lodash is a lodash plugin for underscore-java.\n \n "
218241 + "For docs, license, tests, and downloads, see: http://javadev.github.io/underscore-java" ;
0 commit comments