Javaと情熱のあいだ

カステラとドーナツと珈琲

Listに格納された配列の存在判定サンプル

指定配列がListに含まれているか含まれていないかを判定するサンプルです。
Predicateの実装なのでコレクションならなんでも良いかも。
材料はこのあたり
org.apache.commons.collections

public class PredicateExample {

    /**
     * 実行
     */
    public void execute() throws Exception {

        final List<String[]> list = new ArrayList<String[]>();

        list.add(new String[]{"A", "B", "C"});

        list.add(new String[]{"A", "B", "D"});

        list.add(new String[]{"A", "B", "E"});

        System.out.println(CollectionUtils.exists(list,
                new ArrayEqualPredicate(new String[] { "A", "B", "E" })));

        System.out.println(CollectionUtils.exists(list,
                new ArrayEqualPredicate(new String[] { "A", "B", "F" })));

    }

    /**
     * 
     * <HR>
     * <P>
     *  ■モジュール名 <BR>
     * <BLOCKQUOTE>
     *      ArrayEqualPredicate <BR>
     * </BLOCKQUOTE>
     * <P>
     *  ■クラス仕様 <BR>
     * <BLOCKQUOTE>
     *      ArrayEqualPredicateクラスはオブジェクト配列の比較クラスです。<BR>
     * </BLOCKQUOTE>
     * <P>
     * <HR>
     * <P>
     */
    public static class ArrayEqualPredicate implements Predicate, Serializable{

        /**
         * シリアルUID
         */
        private static final long serialVersionUID = 1L;

        /**
         * オブジェクト配列
         */
        private Object[] objects;

        /**
         *
         * コンストラクタ
         * @param objects オブジェクト配列
         */
        public ArrayEqualPredicate(final Object[] objects) {
            this.objects = objects;
        }

        /**
         *
         * 比較メソッドの実装
         * @param arg0 比較対照
         * @return 比較結果
         */
        public boolean evaluate(Object arg0) {

            final Object[] objects = (String[])arg0;

            return Arrays.equals(this.objects, objects);
        }
    }
}

結果はこんなかんじ...

true
false

一個作れば応用が利くし、コレクションを回さないので楽。