Хотя это правда, что это немного неловко достигать в стандартной Java, пара популярных библиотек (которые вы, возможно, даже уже используете) предлагают интерфейс Predicate
, который избавляет вас от основной массы написания, по крайней мере , Самое замечательное в том, что они также предлагают тщательно протестированные, проверенные вспомогательные классы, которые означают , что вам не нужно писать код итерации .
Проверьте класс Google Guava Iterables - вы можете делать такие вещи, как filter()
, findIf()
и removeIf()
. При правильном использовании эти методы могут привести к чрезвычайно читабельным результатам.
Apache Commons Collections предлагает нечто подобное в CollectionUtils . Такие методы, как find()
, filter()
и select()
, все принимают Predicate
.
Google Guava также идет дальше и дает вам Predicates
помощника, который имеет всю нагрузку консервированных Predicate
экземпляров - такие вещи, как isNull
, containsPattern
и isInstanceOf
.
Проверьте их, если хотите не изобретать велосипед для этого материала.