STL マルチセットのように機能するデータ構造が必要ですが、Java の TreeSet では要素の重複が許可されません。マルチセットと同等のJavaの組み込みデータ構造はありますか?
質問する
32227 次
7 に答える
19
標準のJavaライブラリにはマルチセットはありません。マルチセットクラスを含むGoogleGuavaフレームワークを使用する必要があります。 見る
于 2012-09-24T13:09:15.620 に答える
8
Algorithms 4th editionにはBag
実装があり、本の Web サイトで入手できます。javadocはオンラインでも表示できます。
Bag クラスは、一般的なアイテムのバッグ (またはマルチセット) を表します。任意の順序でのアイテムの挿入と反復をサポートします。
必要なものがあればソース コードを見たいだけかもしれませんがBag
、 には他にも興味深いものがたくさんあるalgs4.jar
ので、一見の価値があります。
于 2012-10-02T22:47:36.863 に答える
2
Apache Commons CollectionsにはBag
とSortedBag
インターフェースがあります。TreeBag
あなたのニーズを満たすかもしれないように思えますが、選択できる実装はたくさんあります。
于 2012-09-24T13:12:58.050 に答える
0
1.8 以降、Map では次のことが可能になりました。
map.computeIfAbsent(key, k -> new HashSet<V>()).add(v);
各値は、オンデマンドで作成されるセットに追加されます。
remove() も変更する必要があるかもしれません。
于 2020-12-18T18:49:49.593 に答える