Apache Common collectionsを使ったフィルタリング
package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
public class CollectionUtilsExample {
public static void main(String[] args) {
List<User> users = new ArrayList<User>();
for (int i = 0; i < 500; i++) {
User user = new User();
user.setId(i);
user.setName("hoge");
user.setAge(new Random().nextInt(40));
users.add(user);
}
for (User user : users) {
System.out.println(ToStringBuilder.reflectionToString(user, ToStringStyle.SHORT_PREFIX_STYLE, true));
}
List<User> overTwentyYearUsers = (List<User>) CollectionUtils.select(users, new Predicate<User>() {
public boolean evaluate(User user) {
return user.getAge() >= 20;
}
});
int i = 0;
for (User user : overTwentyYearUsers) {
System.out.println(i + ": " + ToStringBuilder.reflectionToString(user, ToStringStyle.SHORT_PREFIX_STYLE, true));
i++;
}
}
}