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の作成に使われているみたいです。