2017-11-01 5 views
1

私が理解しているように、Setは重複レコードを防ぐのに役立ちますが、ソートすることはできません。重複レコードとソートを防ぐコレクション

Listを使用している場合、ソートすることはできますが、重複するレコードを防ぐことはできません。

私はTreeSetを使用する場合は、その後、私のTreeSet内のオブジェクトは、私のプロジェクトに大きな変化を必要とされるComparableを実装しなければならない、と可能ならば、私はこれを変更することを好むありません。

多分SetListに変換してから並べ替えることができます。しかし、私のプログラムは少し複雑です、私はそれを整理した後、私はまだこのlistの中にオブジェクトを追加する必要があると同時に、私は重複を防止したいので、これを行うには、私は変換する必要がありますListからSetに再度ソートしてから、内部に新しいオブジェクトを追加してください。

私は、オブジェクトの値に応じてコレクションをソートして、同時に重複したレコードを防ぐアプローチを模索したいと考えています。

うまくいけば、私はこれについて間違ったことを尋ねていません。

+1

あなたのリストをどのように並べ替えますか? – shmosel

+0

@shmosel、私はそれを私のオブジェクトの値に基づいてソートしたいと思います。たとえば、オブジェクトコールの支払い、次にpaymentIdでソートするか、参照番号でソートします。 –

+0

しかし、どのように*?私が得意なのは、あなたがリストをソートするために使用するものであれば、TreeSetに使用できるはずです。 – shmosel

答えて

9

TreeSetは、お客様の要件に最適です。私はTreeSetのを使用している場合

、その後、私のTreeSetの中のオブジェクトは、真実ではないこと

Comparableを実装する必要があります。 TreeSetでは、要素タイプがComparableを実装する必要はありません。代わりにをTreeSetコンストラクタに渡すことができます。

あなたの要素の型がComparableを実装していないので、あなたはListをソートするつもりだったならば、その代わりにListのソートとにかくComparatorを必要としているだろうが、TreeSetとそのComparatorを使用しています。

関連する問題