0

たとえば、重複を許可して整数のセットを保存したい1, 5, 3, 3, 4, 6

を使用するHashSetと、重複が失われます。AListさんは順序を暗示していないので違和感を感じています。途中からアイテムをすばやく削除できるようにする必要がありますArrayListLinkedListアイテムには、私が気に入らない順序があることをまだ暗示しています。

これに使用する必要がある別のデータ構造はありますか? または、参照の等価性に基づいHashSetて比較するように指示する必要がありますか?Integer

いくつかの方法でこれを回避できることはわかっていますが、最も「正しい」解決策にもっと興味があります。

4

4 に答える 4

5

この依存関係が問題にならない場合は、Guava の multisetを使用できます。おまけとして、グアバには他にも多くの便利な汎用ユーティリティがあります。

于 2013-09-02T11:06:41.650 に答える
3

LinkedList行く方法です。ソートする必要がある場合は、Collections.sort();を使用できます。

于 2013-09-02T11:07:03.240 に答える
0

List問題なく機能します。大きな欠点のない問題の最も簡単な解決策であり、これはほとんどの場合、エレガントだが複雑なものに有利です。

それ以外は、この回答を参照してくださいSet コレクションの値が重複していますか?

于 2013-09-02T11:11:34.253 に答える
0

マルチセット スタイルのコレクションを使用します。なんらかの理由で Java ライブラリに欠落しているため、Collection自分で直接実装するか、Google Guava の MultiSet を使用する必要があります。

リストは問題なく、オーバーヘッドも悪くありません。注文を気にしない場合は、使用しないでください。

于 2013-09-02T11:07:04.373 に答える