= 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変数を参照できることに注意してください。