У меня есть список pojo's List<Pojo> pojoList
; и pojo.getColour();
возвращает экземпляр Enum.Возврат подписок на основе переменной-члена или функции отображения
И я хочу сделать это:
List<Pojo> newlist = new ArrayList<Pojo>();
for(Pojo pojo:pojoList){
if(pojo.getColour() == Colour.Red){
newList.add(pojo);
}
}
я мог видеть себя, используя аналогичную функцию для списков других типов так, а не повторять много кода является их способ сделать его универсальным и/или функциональный? Чтобы я мог создавать подсписки разных типов, основанные на другом правиле?
В коллекции apache commons также есть хорошие утилиты для этого. Коллекция filter = CollectionUtils.filter (pojoCollection, новый Predicate() {...}); –
Matt
@Matt: Я думаю, что метод фильтров commons-collections _removes_, который не соответствует исходной коллекции, что мне не очень нравится. В Guava более явно используется метод 'Iterables.removeIf (Iterable, Predicate)' для этого. – ColinD
Вы могли бы указать, что выглядит 'Function'? – hakunami