質問

私は(彼らは関連/それが良くなる任意のプログラミング言語に縛られていない場合).Iは実用的なユースケースを設定し、リストと地図を関連付けることができ、いくつかの実用的なユースケースを知っていただきたいと思います。

たとえばあなたが欲しいという用語がアルファベット順にリストされていると場所/ページ番号が値であるされている書籍の用語集を望んでいた場合、あなたは、コレクションのTreeMap(地図ですOrderedMap)

を使用します

どういうわけか、私はできません任意の「実用的」ユースケースに関連付ける多重集合。あらゆる用途の誰かのノウハウをしていますか?

http://en.wikipedia.org/wiki/Multiset に十分な私に教えてくれありません:)

PS:あなたたちがこのコミュニティwiki'edそれは大丈夫ですされるべきだと思う場合。私はそれをしなかった唯一の理由は、「この質問に答えるための明確な客観的な方法がある」であった。

役に立ちましたか?

解決

アプリケーションがたくさん。たとえば、ショッピングカートを想像してみてください。それはマルチセットされるように、すなわち、2 CPUの、3枚のグラフィックボードなど - すなわち、項目の複数のインスタンスを含むことができます。一つの簡単な実装には、各項目の数を追跡することである - すなわち、情報2のCPU、3枚のグラフィックスボードなどを周りに保つ

私はあなたが他のアプリケーションの多くを考えることができると確信しています。

他のヒント

マルチセットは、あなたがそれ以外の場合は地図を持っていると思いれる多くの状況で有用です。ここでは3例があります。

あなたは)アクセサのgetType(とクラスはFooを持っている、とあなたはそれぞれのタイプを持っているどのように多く、Fooのインスタンスのコレクションのために、知っているとします。

同様に、システムは、さまざまなアクションを実行することができ、あなたは、各アクションが発生した回数を追跡するために多重集合を使用することができます。

最後に、2つのコレクションは順序を無視したがインスタンスが繰り返される頻度に注意を払って、同じ要素が含まれているかどうかを判断するために、単純に呼び出し

HashMultiset.create(collection1).equals(HashMultiset.create(collection2))

は数学のいくつかのフィールドにおいて、セットは、すべての目的のために多重集合として扱われます。線形依存のためにテストする場合、例えば、線形代数では、ベクトルのセットはマルチセットとしてteatedれます。 したがって、これらのフィールドの実装はマルチセットの使用法の恩恵を受けられるはずです。

あなたは、線形代数は実用的ではないと言うかもしれないが、それはまったく違う議論です...

Aショッピングカートは多重集合です。あなたがより多くのものより購入したいときは、ショッピングカート内の同じ項目の複数のインスタンスを置くことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top