Show page source of LzList #72381

= LzList =
== 概要 ==
Listオブジェクトの貧弱さは、Javaの問題の一つです。
このクラスでは、集合論的操作を提供します。

== サンプル ==
{{{
    List base = FileUtil.readLines("base.txt", "Shift_JIS");
    List input = FileUtil.readLines("input.txt", "Shift_JIS");
    List result = new LzList(base).join(input).uniq().grep("^[A-Za-z]").sortAsc().list();
    DataDumper.dumpList(System.out, result);
}}}

== コンストラクタ ==
提供されるコンストラクタは以下のものです。

 * LzList()
 * LzList(List list)
 * LzList(Object[] args)
 * LzList(Set set)

== メソッド ==
提供されるメソッドは以下のものです。

 * list() - 中のListを返す
 * or(List)
 * and(List)
 * sortAsc()
 * sortDesc()
 * sort(Comparator)
 * grep(String)
 * ungrep(String)
 * join(List)
 * uniq()
 * equals(List)
 * equalsOnSort(List)
 * equals(String)
 * toString()
 * forEach(LzListClosure)

== forEach ==

1.0.3から、クロージャとしてforEachメソッドが追加されました。使い方は以下の通りです。

{{{
public void testLzListClosure() throws Exception {
    List list1 = Arrays.asList(new String[]{"AAA", "ABB", "CCC"});
    final String var = "A";
    LzList grep = new LzList(list1).forEach(new LzListClosure(){
        public boolean process(int i, int len, Object obj) {
            String str = (String)obj;
            return str.startsWith(var);
        }
    });
    assertTrue(grep.equals("[AAA, ABB]"));
}
}}}

クロージャの中からfinal変数を参照できることに注意してください。