Collectionsのクラスは、java.io.inputStreamで使われているようなデコレーション(Decoration)パターンをコレクション系のクラスに使うときに便利なクラスです。Extendするより柔軟に使えますし。コレクション系のクラスを拡張するときは、まず使って行こうと思います。(ArrayListをextendsしたら、LinkListには使えなくなる)クラス一覧などはFowarding関連のAPIをご覧くださいまたコードを直接見たほうが理解しやすい場合もあります。コレクションのクラスをoverwriteしていないので、デコレーションの例としてはいま1つわかりにくかったですね。Listとか見てみてください。delegate().toString();}}Forwardingの使用例ForwardingListを使った例ここでは、FowwardingListを拡張して、配列の指定のindexのアイテムを上下に移動できるようにしてみました。Collecions使うのが便利ですね。このMovableListは、ボタン押したら、並び方が変わる時に使っています。CollectionsのBiMapやMultisetやMultimapの中で使われています。UnmodifiableMultisetやUnmotifiableMultimapの元になっています。以下のように不要なメソッドを上書きすることで、修正不可を実現しています。機能を加えるだけでなく機能を省くのにもForwardingは使えるのですね。Searchやはり、実例のコードをを見たほうがわかりやすいこともあります。addした数を数えたり、遅延ロードしたりを実現しています。addと同時にリスナー追加などもしています。Collectionsの理解には、Decorationの理解が不可欠です。使った例としてはInputStreamがJavaでは有名です。デザインパターンの1つであるデコレーションパターンについては、以下リンクを見てみることをお勧めします。