JavaでArrayListの重複要素を削除する2つの方法
この記事では、HashSet と LinkedHashSet を使用して ArrayList から重複要素を削除する 2 つの方法を説明します。
ArrayList は、Java で最も一般的に使用されるコレクション型の 1 つです。これにより、複数の null 要素や重複要素を柔軟に追加でき、要素の挿入順序が維持されます。コーディングの際、構築された ArrayList から重複要素を削除する必要があるという要件に遭遇することがよくあります。
方法 1: HashSet を使用して ArrayList 内の重複要素を削除します
この方法では、HashSet を使用して重複要素を削除します。ご存知のとおり、HashSet では要素の重複は許可されません。 HashSet のこのプロパティを使用して、構築された ArrayList 内の重複要素を削除します。ただし、このアプローチには欠点があります。つまり、ArrayList 内の要素の挿入順序が削除されます。これは、重複した要素を削除した後、要素が間違った順序で挿入されることを意味します。まずは次の例を見てみましょう。
import java.util.ArrayList; import java.util.HashSet; public class MainClass { public static void main(String[] args) { //Constructing An ArrayList ArrayList<String> listWithDuplicateElements = new ArrayList<String>(); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("J2EE"); listWithDuplicateElements.add("JSP"); listWithDuplicateElements.add("SERVLETS"); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("STRUTS"); listWithDuplicateElements.add("JSP"); //Printing listWithDuplicateElements System.out.print("ArrayList With Duplicate Elements :"); System.out.println(listWithDuplicateElements); //Constructing HashSet using listWithDuplicateElements HashSet<String> set = new HashSet<String>(listWithDuplicateElements); //Constructing listWithoutDuplicateElements using set ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(set); //Printing listWithoutDuplicateElements System.out.print("ArrayList After Removing Duplicate Elements :"); System.out.println(listWithoutDuplicateElements); } }
出力:
ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP] ArrayList After Removing Duplicate Elements :[JAVA, SERVLETS, JSP, J2EE, STRUTS]
出力に注意してください。重複した要素を削除すると、要素が再シャッフルされることがわかります。掲載順に並べられなくなりました。重複した要素を削除した後に要素の挿入順序を維持したい場合、この方法はお勧めできません。重複した要素を削除した後に要素の挿入順序が変更されないようにする別の方法があります。それはLinkedHashSetを使うことです。
方法 2: LinkedHashSet を使用して ArrayList 内の重複要素を削除します
この方法では、LinkedHashSet を使用して ArrayList 内の重複要素を削除します。ご存知のとおり、LinkedHashSet では要素の挿入順序を維持しながら、要素の重複は許可されません。 LinkedHashSet のこれら 2 つのプロパティにより、ArrayList 内の重複要素を削除した後も要素の挿入順序が維持されることが保証されます。以下の例を参照してください。
import java.util.ArrayList; import java.util.LinkedHashSet; public class MainClass { public static void main(String[] args) { //Constructing An ArrayList ArrayList<String> listWithDuplicateElements = new ArrayList<String>(); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("J2EE"); listWithDuplicateElements.add("JSP"); listWithDuplicateElements.add("SERVLETS"); listWithDuplicateElements.add("JAVA"); listWithDuplicateElements.add("STRUTS"); listWithDuplicateElements.add("JSP"); //Printing listWithDuplicateElements System.out.print("ArrayList With Duplicate Elements :"); System.out.println(listWithDuplicateElements); //Constructing LinkedHashSet using listWithDuplicateElements LinkedHashSet<String> set = new LinkedHashSet<String>(listWithDuplicateElements); //Constructing listWithoutDuplicateElements using set ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(set); //Printing listWithoutDuplicateElements System.out.print("ArrayList After Removing Duplicate Elements :"); System.out.println(listWithoutDuplicateElements); } }
出力:
ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP] ArrayList After Removing Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, STRUTS]
出力に注目してください。 ArrayList 内の重複要素を削除した後も、要素の挿入順序が維持されていることがわかります。
以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。
ArrayList 内の重複要素を削除する 2 つの Java メソッドについては、PHP 中国語 Web サイトの関連記事に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。
