1

一意のオブジェクト要素を格納するクラスを作成する必要があります。これらの要素を並べ替える必要はありませんが、一意である必要があります。

どのインターフェイスを使用すればよいかアドバイスをもらえますか? ある人から Set を使用できると提案され、別の人が Vector または List と言いました。今、私は完全に混乱しています:-(

4

5 に答える 5

7

Setまさにあなたが探しているものです

Set<Integer> uniqueValues = new HashSet<Integer>();
uniqueValues.add(1);
uniqueValues.add(2);
uniqueValues.add(3);
uniqueValues.add(2);// will be ignored 
于 2012-06-26T09:00:03.690 に答える
2

Setのドキュメントから:

重複する要素を含まないコレクション。より正式には、セットには、e1.equals(e2) のような要素 e1 と e2 のペアが含まれず、最大でも 1 つの null 要素が含まれます。その名前が示すように、このインターフェイスは数学的集合の抽象化をモデル化します。

(私の強調)

これらのオブジェクトは、それらの等価性に影響を与えるために変更可能であってはならないことに注意してください。それ以外の場合は、オブジェクトを挿入してからequal()、セット内の別のオブジェクトになるように変更できます。Setオブジェクトが遡及的に一意性を強制するとは思いません。

于 2012-06-26T09:01:32.283 に答える
1

まあ、HashSetのようなコレクションを設定する必要があります。以下の点に注意してください。

  1. Set にオブジェクトが含まれるクラスにequalsメソッドを実装することを忘れないでください。

  2. また、コレクションをバケットに均等に分割する適切なアルゴリズムでhashcodeメソッドを実装します。equals メソッドで考慮するオブジェクトの特定のプロパティを考慮に入れることで、それを行うことができます。

于 2012-06-26T09:02:37.410 に答える
0

を使用する必要がありますSet。ユニークなオブジェクトを格納するように設計されています。より正式には、セットには要素のペアe1e2そのようなものは含まれずe1.equals(e2)、最大でも 1 つの null 要素が含まれます。equalsこれが、オブジェクトがコレクションに格納されるクラスにメソッドを実装することを覚えておく必要がある理由です。

于 2012-06-26T09:00:10.337 に答える
0

一意のオブジェクトを格納するための set インターフェイスを使用します ....

于 2012-06-26T09:01:54.733 に答える