のキーに複数の値を格納する必要がある場合がありますMap
。この問題を解決するには、次のようないくつかの方法を知っています。
- 独自の
Map<K,V,W>
実装 の作成- 書きにくい、簡単に再利用できる、より多くの値が必要な場合の問題
- n を使用
Map<K,V>
- 実装が簡単で、多くのオブジェクトを必要とし、キーは何度も保存されます: どこかで 1 つのキーを削除するとどうなりますか?
- a を使用
Map<K, Map<I, V>>
し、2 番目のキーで値を保存します- 実装が簡単、反復中に問題が発生する可能性がある (null 値)、値キーも追跡する必要がある
- (または)
を格納
K, V, W, ...
して使用するクラスを作成します。List<MyStorageClass>
Map<K, MyStorageClass>
- 良い選択のようです: 実装は簡単ですが、おそらく多くのインターフェースを実装する必要があります (例
Compareable
)
- 良い選択のようです: 実装は簡単ですが、おそらく多くのインターフェースを実装する必要があります (例
- ...おそらくもっと多くの
しかし、Javaの方法のベストプラクティスは何なのだろうか(はい、私は知っています:「それは依存します」)? または、実装作業を最小限に抑えるために使用できる言語組み込み機能もありますか?