4

のキーに複数の値を格納する必要がある場合があります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の方法のベストプラクティスは何なのだろうか(はい、私は知っています:「それは依存します」)? または、実装作業を最小限に抑えるために使用できる言語組み込み機能もありますか?

4

2 に答える 2

7
 Sometimes i need to store more than one value to a key in a Map

それでは、マルチマップを使用しないのはなぜですか? マルチマップ

于 2013-04-17T09:54:00.863 に答える
2

MultiValueMap春からご覧ください。

于 2013-04-17T09:54:03.133 に答える