リストからの重複の削除
Java でリストを操作する場合、重複した要素を削除する必要がある場合があります。一般的な試みの 1 つは、for ループを使用して、各要素を追加する前にリスト内に既に存在するかどうかを確認することです。ただし、このアプローチは非効率的で、エラーが発生しやすい可能性があります。
問題:
Customer オブジェクトのリストから重複を削除しようとすると問題が発生すると説明しました。コードでは、for ループを使用して、顧客を追加する前にリストに顧客が存在していないかどうかを確認します。
解決策:
提供されたソリューションは、より効率的で、リストの元の順序を維持しながら重複を削除するための簡潔なアプローチ。これは、挿入順序に基づいて要素のリンクされたリストを維持し、重複を自動的に削除する LinkedHashSet クラスを利用します。
LinkedHashSet の使用:
次のコード スニペットは、その方法を示しています。 LinkedHashSet を使用して重複を削除しながら維持するにはorder:
<code class="java">List<Customer> depdupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>
この行は、顧客リストから新しい LinkedHashSet を作成し、一意の顧客のセットを作成します。次に、セットは順序付きリスト (ArrayList) に変換されます。
元のリストの変更:
元のリストを変更したい場合は、次のコード:
<code class="java">Set<Customer> depdupeCustomers = new LinkedHashSet<>(customers); customers.clear(); customers.addAll(dedupeCustomers);</code>
このコードは、リストを LinkedHashSet に変換し、重複を削除し、元のリストをクリアします。リストを作成し、そのリストに一意の要素を再度追加して、元のリストから重複を効果的に削除します。
以上がJava で順序を維持しながらリストから重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。