Google Collectionsのベースパッケージのクラスは、Guava-libraryから来ているものもあります。
FunctionとPredicate
こちらを見てください。Joiner
文字列を結合するクラスです。
文字列結合といえば、Jakarta-lang のStringUtilsのjoin()もよく使われています。
Google CollectionsのJoinerはいくつかの機能が追加されています。
使い方
Joiner.on(',').join(iterator)
Joiner.on("\r\n").skipNulls().join(iterator)
Joiner.on(',').withKeyValueSeparator("=").join(map)
機能
StringBuilder対応
結合後の文字列を収納するStringBuilderも引数に渡せますので、
複数のjoinをStringに戻す無駄なく複数を結合出来ます。
インスタンス化可能
インスタンス化できますので、結合のたびにセパレター文字を渡さずにすみます。
Joiner csvJoiner=
Joiner.on(",");
null文字の操作
nullの文字列をスキップしたり、別の文字列に置き換えるなど変更出来ます。
指定なしだとnullが出てくるとエラーになる
Joiner.on("\r\n").useForNull("NULL").join(iterator)
Joiner.on("\r\n").skipNulls().join(iterator)
Map形式にも対応
Mapにも対応しています。mapのデバック出力にもいいかも
Joiner.on('\n').withKeyValueSeparator("=").join(map)
使用例
opencsvで読み込んだCSV リストをテキストに変換する
public static String toText(List<String[]> csv){
List<String> lines=Lists.newArrayList();
Joiner joiner=Joiner.on(",").useForNull("");
for(String[] line:csv){
lines.add(joiner.join(line));
}
return Joiner.on("\n").join(lines);
}
Objects
片方がnullのオブジェクトでも比較します
null同士ならtrueになります。
public static boolean equal(@Nullable Object a, @Nullable Object b) {
return a == b || (a != null && a.equals(b));
}
複数のObjectからhashcodeの作成を簡単にします
public static int hashCode(Object... objects) {
return Arrays.hashCode(objects);
}
Suppliers
Multimapの作成に使われているみたいです。