i'm trying write a method that when passed an arraylist, will return a new arraylist containing only members matching a condition specified (without utilizing iteration). the collection class has a removeIf which is similar but i'm looking for a "copyIf" if any such functionality exists. ex:

```
public class Foo {
  public int value;
  public Foo(int val){
    value = val;
  }
}

public class Bar {
  private ArrayList<Foo> refList;
  public ArrayList<Foo> overTwentyList;

  public Bar(){
    refList = new ArrayList<Foo>();
    refList.add(new Foo(12));
    refList.add(new Foo(23));
    refList.add(new Foo(6));
    refList.add(new Foo(44));
    refList.add(new Foo(2));
    refList.add(new Foo(19));
    refList.add(new Foo(99));
    refList.add(new Foo(74));

    overTwentyList = overTwenty(refList);
    // now overTwentyList would contain only Foo members
    // with values 23, 44, 99, 74 and refList would retain
    // all values
  }

  public ArrayList<Foo> overTwenty(ArrayList<Foo> bankList){
    // bankList filter code here
    // normally i would use iteration but i think
    // calling this method frequently would eat a lot
    // of system resources if it iterates every time
    return filteredList;
  }
}

```