1. 時間パフォーマンスと 2. メモリ消費の観点から、グアバの multiset と multipmap と JDK の List と Map のどちらが優れているか疑問に思っています
グアバの時間と記憶性能について誰か説明できますか?
あなたは複数のものを混同しています。
List
、Set
およびMap
は、Java コレクション ライブラリの 3 つの基本インターフェイスです。Guava のMultiset
andは、似たような響きですが、 and をMultimap
直接拡張したものではありません。Set
Map
Multiset
は、重複を許可するという点で実際にSet
は (実際には直接拡張Collection
されます) ではありませんが、(必ずしも) のような順序付けを満たしていません (このため、実装であるList
を使用できます)。一般に、マルチセットはバッグと呼ばれることがよくあります。LinkedHashSet
Set
Multimap
Map
同じキーに対して複数の値を受け入れるマップ (ただし、インターフェースの拡張ではありません) です。
また、Multiset & Multimap: What's the Point? も参照してください。これはもともと C++ 用ですが、受け入れられた回答は、これらが理にかなっている適切なユースケースの具体的な例を示しています。
したがって、パフォーマンスとメモリ消費は、ここでの主な関心事ではありません。主な関心事は、これらがユース ケースに適したデータ構造であるかどうかです。
また、インターフェイスでは、API のコントラクトのみを定義するだけなので、(リスト、セット、またはマップ型から期待されるものに関する一般的な仮定を除いて) メモリ消費に関する仮定を実際に行うことはできません。それらを比較したい場合は、これらのインターフェースの実際の実装を調べてください。