GuavaのImmutable Collectionsの実装サンプル
GuavaのImmutable Collectionsを見てみる。 (Java 9 のCollections APIでも同様のstatic factory methodが実装予定)
一般にImmutableであると、参照効率が良い, スレッドセーフなどのメリットがある。 github.com
以下、サンプル。
public static void main( String[] args ) { // static factory patternで宣言 List<String> signals = ImmutableList.of("red","yellow","green"); signals.add("pink"); // throw new UnsupportedOperationException // 初期化時の処理はbuilderも使用可能 ImmutableList.Builder<String> pokemonBuilder = ImmutableList.builder(); pokemonBuilder.add("zenigame"); pokemonBuilder.add("hitokage", "hushigidane"); // 可変長引数も代入可能 List<String> pokemonAtGoldAndSilver = Lists.newArrayList("waninoko", "hinoarashi", "tikorita"); pokemonBuilder.addAll(pokemonAtGoldAndSilver); // Iterable型も代入可能 List<String> pokemon = pokemonBuilder.build(); pokemon.add("pikachu"); // throw new UnsupportedOperationException }