lambdaj is a Java library that allows you to manipulate collections in a pseudo-functional and statically typed way. The main purpose of lambdaj is to partially eliminate the burden of writing (often nested and poorly readable) loops while iterating over collections. In particular, it allows you to iterate a collection in order to filter its items on a given condition, convert each item with a given rule, extract a given property from each item, sort the items on the values of one of their properties, group or index the items on the value of one or more properties, invoke a method on each item, or aggregate the items or the values of one of their properties. It allows all this without having to write a single explicit loop.