import static ch.lambdaj.Lambda.having; import static ch.lambdaj.Lambda.on; import static ch.lambdaj.collection.LambdaCollections.with; import static org.hamcrest.core.IsEqual.equalTo; import java.util.Arrays; import java.util.List; public class Derp { public static class Person { Person() { } Person(int a) { dob.year = a; } DOB dob = new DOB(); public DOB getDob() { return dob; } public void setDob(DOB dob) { this.dob = dob; } } public static class DOB { private int year; public int getYear() { return year; } public void setYear(int year) { this.year = year; } } public static void main(String[] args) { List people = Arrays.asList(new Person(1985), new Person(1988), new Person(1985)); List ppl1985 = with(people).retain( having(on(Person.class).getDob().getYear(), equalTo(1985))); for(Person p : ppl1985) { System.out.println(p+" = "+p.getDob().getYear()); } System.out.println("derp"); for(Person p : people) { System.out.println(p+" = "+p.getDob().getYear()); } } }