私はMultisetについてよく理解していますが、頻繁にMapを使用して周波数を表現することはできますが、Multisetを使用する理由はありますか? Multiset<E>
Map<E, Integer>
以上のGuava MultiSetとマップの比較
17
A
答えて
31
利点:
- コレクションになっていない要素を追加するときに必要ありません特別なコード。
- 要素数を直接処理する方法:
count(E)
、add(E, int)
など - コードの意図は明確です。 は明らかに要素をカウントにマップします。
Map<E, Integer>
は要素を任意の整数にマップできます。
も参照してください:私に
8
、Map
から離れてMultiset
を設定し、最も重要な点は、それがCollection
だということです。あなたはそれにものを入れて、後でカウントを得ることができます。それは、Map
がそうでないところでそれが設計されているユースケースに概念的に適合しています。これらのユースケースの場合、Map
はJavaがより適切なものを提供しなかったのでちょっとしたことがOKのハックです。
関連する問題
- 1. Apache Commons BagとGuava MultiSetの違いは何ですか?
- 2. 「マップ出力マテリアライズド・バイト」と「マップ出力バイト」との比較
- 3. Googleマップの位置を比較する
- 4. 比較条件と比較条件
- 5. Javaシリアル化:readFields/putFieldsとシリアル化されたマップの比較
- 6. Googleアナリティクスとリアルタイムアナリティクスの比較:ChartbeatとClickyとMixpanelの比較
- 7. カウントループと比較
- 8. コピーデータと比較
- 9. OrElseとの比較
- 10. MySQLの比較と '%'
- 11. ViewStateとクッキーとの比較対キャッシュの比較
- 12. モンテカルロ法と進化的アルゴリズムの比較と比較
- 13. BufferedOutputStreamとByteArrayOutputStreamとの比較
- 14. IDeserializationCallbackとOnDeserializedAttributeとの比較
- 15. iosとjsonとの比較
- 16. DataSourceUtils.getConnectionとDataSource.getConnectionとの比較
- 17. NullReferenceExceptionとMSILとの比較
- 18. FuzzyとSeleniumとの比較
- 19. Display.asyncExecとDisplay.timerExecとの比較
- 20. HttpContextとHttpListenerContextとの比較
- 21. AXとゼロとの比較
- 22. File.Delete()とFileInfo.Delete()との比較
- 23. PHPとWordPressとの比較
- 24. ELとequalIgnoreCaseとの比較
- 25. VB.NETでのデータ構造の選択と比較の比較
- 26. 2つのフォルダの比較 - テンプレートと実際の比較
- 27. ポータブルプリントと比較pthread_t
- 28. 比較floatとdouble
- 29. ZBarとzxingの比較 - QR認識の比較
- 30. Python辞書キー(クラスオブジェクト)複数の比較関数との比較
Multisetはおそらくあなたの実装よりも効率的であるだけでなく、実際に何をしようとしているのかを明確にしています。通常、マップを使用すると、キーがマップ内にあるかどうかを確認したり、ゼロを扱ったり、あらゆる種類のトリッキーなビジネスを扱っています。マルチセットはうまく動作します。 –