ホームページ  >  記事  >  Java  >  順序を維持しながらリストから重複を削除するにはどうすればよいですか?

順序を維持しながらリストから重複を削除するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 07:17:31694ブラウズ

How to Remove Duplicates from a List While Preserving Order?

リストから重複を効率的に削除する方法

リストから重複要素を削除する必要があるシナリオが発生します。ただし、コード スニペットで説明されているように、現在のアプローチでは望ましい結果が得られません。

元の順序を維持しながら重複を削除する効果的な方法の 1 つは、LinkedHashSet を利用することです。このセットベースのデータ構造は、挿入順序を維持しながら重複要素を自動的に破棄します。

これを実現するには、次のコードを使用して既存のリストを LinkedHashSet に変換できます。

<code class="java">List<Customer> dedupeCustomers = new ArrayList<>(new LinkedHashSet<>(customers));</code>

または元のリストを変更したい場合は、次のアプローチを選択できます:

<code class="java">Set<Customer> dedupeCustomers = new LinkedHashSet<>(customers);
customers.clear();
customers.addAll(dedupeCustomers);</code>

このメソッドは、最初に元のリストの一意の要素を含む新しい LinkedHashSet を作成します。その後、元のリストがクリアされ、重複排除されたセットの要素に置き換えられ、重複が効果的に削除されます。

これらのソリューションのいずれかを実装すると、リストから重複を効率的に削除でき、各要素が保持されたまま 1 回だけ表示されるようになります。必要に応じて元の注文。

以上が順序を維持しながらリストから重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。