Listに格納されたBeanをソートするサンプル
Listに格納されたBeanをソートする場合はComparator.compareを実装したクラスを作って
Collections.sortを実行すればできるが、作る手間を省くために
org.apache.commons.beanutils.BeanComparatorを利用する。
BeanComparatorでソートしたいメンバ名を指定すると昇順にソートされる。
ReverseComparatorをオマケとして渡すと降順にソートされる。
/** * * 実行。 * @throws Exception 例外 */ public void execute() throws Exception { final List<TestBean> list = new ArrayList<TestBean>(); while (list.size() < 100) { list.add(new TestBean(RandomUtils.nextInt(100))); } System.out.println("昇順"); Collections.sort(list, new BeanComparator("hoge")); for (final TestBean tb : list) { System.out.println(ToStringBuilder.reflectionToString( tb, ToStringStyle.SHORT_PREFIX_STYLE)); } System.out.println("降順"); Collections.sort(list , new BeanComparator("hoge", new ReverseComparator())); for (final TestBean tb : list) { System.out.println(ToStringBuilder.reflectionToString( tb, ToStringStyle.SHORT_PREFIX_STYLE)); } } /** * * <HR> * <P> * ■モジュール名 <BR> * <BLOCKQUOTE> * Test.java <BR> * </BLOCKQUOTE> * <P> * ■クラス仕様 <BR> * <BLOCKQUOTE> * TestクラスはBeanクラスです。<BR> * </BLOCKQUOTE> * <P> * <HR> * <P> */ public class TestBean { /** * 確認用数値 */ private int hoge; /** * * コンストラクタ * @param hoge 確認用数値 */ public TestBean(final int hoge) { this.hoge = hoge; } /** * * 確認用数値の取得 * @return 確認用数値 */ public int getHoge() { return hoge; } /** * * 確認用数値の設定 * @param hoge 確認用数値 */ public void setHoge(final int hoge) { this.hoge = hoge; } }