Я пытаюсь написать метод, который при передаче арраиста вернет новый arraylist, содержащий только элементы, соответствующие заданному условию (без использования итерации). класс коллекции имеет removeIf, который похож, но я ищу «copyIf», если такая функциональность существует. ex:clone collection members matching condition
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;
}
}
не повторив? в фоновом режиме почти всегда повторяется. –