Java BeanUtils - Querying Or Filtering Collections


The collections of beans can be filtered in the commons-collections by using the interface Predicate and also provides either true or false value on the evaluation of an input object. There is a Predicate called BeanPropertyValueEqualsPredicate which will assess the set property value against the given value.


public BeanPropertyValueEqualsPredicate(String propertyName, Object propertyValue)

The above syntax has two parameters, which decides what property to be evaluated and what should be its expected value. It creates a Predicate for evaluating the target object and returns true if the value specified by propertyName is equal to the value specified by the propertyValue; otherwise it returns false.

The property names are defined by org.apache.commons.beanutils.PropertyUtils and can be simple, indexed, nested or mapped.

For instance, you can filter a collection of beans where myCar property is false:

// create the closure
BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate( "myCar", Boolean.FALSE );
// filter the collection
CollectionUtils.filter( myCollection, predicate );

The above code filters the 'myCollection' collection and returns the boolean value for the object's myCar property.

Kickstart Your Career

Get certified by completing the course

Get Started