2017-03-22 22 views
-3

Javaについての話は、リストとセットの違いが複製オブジェクトの許容量を参照することで知られていますが、もう一方は順序付けられていません。 これ以外にも、順序付けられていない要素と順序付けられていない要素のコレクションの間の利点は何ですか?パフォーマンス係数やその他の重要な違いはありますか?それとも、唯一の違いはそれらにアクセスする方法ですか?順序付けされたコレクションと順序付けられていないコレクションの利点は?

たとえば、私はリストとセットのコレクションを持っていて、重複の特性やスレッドセーフを取り除いています。

私は再開で私の質問は次のようだと思います:順序付けられたコレクションと順序付けられていないコレクションの重要性は何ですか?

+2

注文されたコレクションは、さまざまな操作中に注文を保存するために特別なメンテナンスが必要です。あなたの状況についてもっと教えていただければ、より具体的な答えが得られるかもしれません。 –

答えて

1

リストを持ち、それが互いに参照を持つ配列またはノードの集合であるかどうか。利点は、並べ替えられていないリストでは、特定の要素を照会しようとすると、ソートされたリストで、どこにあるのかというより一般的な考え方が得られ、それが必要な場所を知っているという事実を利用できます。それはリスト内の他の項目に関連してリストにあります。順序付けされていないリストでは、要素がリストにあるかどうか、またはリスト内の他の項目に関してどこにあるのかわからないため、リストのすべての要素をチェックする必要があります。これはリストから要素を削除する場合と同じですが、最初にその要素を見つけてから実装を必要とするため削除する必要があるためです。

並べ替えられていないリストの重複を無視する場合、リストに項目を追加することについては、最後にそれをチャックするだけですが、順序付きリストの場合はリスト内でその場所を特定する必要があります配列内の参照やシフト要素をリセットする必要があります。しかし、重複した要素をチェックしている場合は、順序付けられていないリストは、リストに要素が含まれていないかどうかを調べる問題を再度発生させます。それが存在していれば終了し、ただそれを右に置いていなければ。

本質的に順序付きリストを持つことで、リスト内のものが他のものと比べてどこにあるのかを知ることができます。また、これらの利点により、より高速に実行できるアルゴリズムを使用することができます。

+0

そのような場合、順序付けられていないコレクションを使用するといつでも利点はありません。 – Eduardo

+0

あなたがあなたのリストをソートすることに努力したくない、またはあなたが作業している問題が十分に小さいので、順序リストを本当に保証しない限り、順序付けられていないリストを使用する利点はありません。 –

+0

順序付けられていないコレクションを保持することに他に触れていないものがある場合、なぜそれらはJava上にまだ存在しますか?私はそれが私の質問の全体のポイントだと思う – Eduardo

関連する問題