Set
には重複するオブジェクトはありません。 List
では、リスト内に「等しい」オブジェクトが複数存在することはありません。何百万ものものがあなたが使うことができ、あなたの人生をはるかに簡単にします。たとえば、国のセット、ユーザー名のセットなどです。リストを使ってこれらのデータを保存する場合は、リストに重複が許可されていない限り、新しい要素を追加する前にリストに既に同じ要素が含まれているかどうかが確認されています。
つまり、setは重複のないリストと見なすことができます。しかし、SetとListのインタフェースは、Javaでは実際には同じではありません。たとえば、セットの特定の位置に要素を取得することはできません。これは、セット内での位置は重要ではないためです(ただし、リスト用です)。したがって、使用するデータ収集の選択は、その目的に完全に依存します。
私自身、多くの場合、Set
は非常に便利であり、重複のチェックの量を減らすことがわかりました。私の使用事例の1つは、setを使用して、分子内にいくつの化学元素があるかを調べることです。分子には原子オブジェクトのリストが含まれており、各原子は要素記号に関連付けられているので、要素のタイプを見つけるために、すべての原子をループし、その要素を要素セットに追加します。すべての重複は手間をかけずに削除されます。
なぜダウン票ですか?あなたが投票した場合は、コメントを提供してください – newbie
よくある質問から:_実際に直面している問題に基づいて実用的で、答えることができる質問をお願いします._ –
これは実用的な質問ではないと言いますか?私は自分のプログラムでデータ構造を扱っています。リストやハッシュやセットを使うべきかどうか疑問に思っていますか?そして、私もその答えることができると思うので、私はあなたの懸念を理解していません。 – newbie