googleのcom.google.common.collect.Listsをちょこっと使ってみた。
2008/01/28
collections
google
java
Javaです。
googleのcom.google.common.collect.Listsです。
ユーティリティクラスですね。
import static して使うとよさげだと思います。
google-collections - Google Code
newArrayList
immutableList
transform
を使ってみました。
newArrayListを使うと一行で複数値を使ってのコンストラクトができていいですね。
transformの動作は実際に使うときに評価されて動作するようです。Javadocみたほうがいいかもです。
package google_collections;
import java.util.List;
import com.google.common.base.Function;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.immutableList;
import static com.google.common.collect.Lists.transform;
import static java.lang.System.out;
public class TestLists {
public static void main(String[] args) {
a();
}
public static void a() {
//(1) newArrayList
List<String> list = newArrayList("foo", "bar", "baz");
out.println(list.getClass());// java.util.ArrayList
//(2) immutableList
list = immutableList("foo", "1", "bar", "2", "baz", "3");
out.println(list.getClass());// com.google.common.collect.Lists$ImmutableArrayList
//(3) transform
List<Integer> list2 = transform(list, new Function<String, Integer>() {
public Integer apply(String s) {
out.println(s);
Integer integer = 0;
try {
integer = Integer.parseInt(s);
} catch (Exception e) {
}
return integer;
}
});
// lazy evaluation
System.out.println(list2);
}
}
import java.util.List;
import com.google.common.base.Function;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.immutableList;
import static com.google.common.collect.Lists.transform;
import static java.lang.System.out;
public class TestLists {
public static void main(String[] args) {
a();
}
public static void a() {
//(1) newArrayList
List<String> list = newArrayList("foo", "bar", "baz");
out.println(list.getClass());// java.util.ArrayList
//(2) immutableList
list = immutableList("foo", "1", "bar", "2", "baz", "3");
out.println(list.getClass());// com.google.common.collect.Lists$ImmutableArrayList
//(3) transform
List<Integer> list2 = transform(list, new Function<String, Integer>() {
public Integer apply(String s) {
out.println(s);
Integer integer = 0;
try {
integer = Integer.parseInt(s);
} catch (Exception e) {
}
return integer;
}
});
// lazy evaluation
System.out.println(list2);
}
}
: