「Javaってこれがめんどうだよねー」「あ、それGuavaでマシになりますよ」というやりとりが多い気がするので代表例をいくつか書いてみる。気になった方は公式ドキュメントをぜひ。 便利系Map 2キー使って1要素を特定するMap 複数の値を持ちうるMap 完全に同じ挙動というわけではない点に注意。 Set版もある。 キーでだけでなく値でも検索できるMap Mapの実装を作るのが面倒 ForwardingMapのサブクラスを作る……というのも良いが、そもそもMapをなぜ実装しなければならないかを確認したほうが良い。 例えば突っ込むキーや値を制限したいならMapConstraintsを使う。キャッシュのために特殊なMapを作りたいなら、MapMakerやcacheパッケージを見てみる。 コレクションをいい感じにゴニョゴニョ FluentIterableとIteratorsとIterablesをひ