msp0310
8/15/2015 - 7:10 AM

Apache Common collectionsを使ったフィルタリング

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++;
		}
	}
}