JavaでArrayListから重複要素を削除する方法を解説
本記事では、JavaのArrayList(配列リスト)から重複する要素を削除する方法について詳しく解説します。
リスト(List)とは、要素を順序付けて格納し、順番にアクセスできるコレクションのことです。インデックスベースのメソッドを使って、要素の挿入・更新・削除・検索を行うことができます。ただし、リストは重複した要素を持つことが許されているため、場合によっては重複を取り除く処理が必要になります。
処理内容のデモンストレーション
以下に、実際の動作例を示します。
入力:
定義されたリスト: [Java, Scala, Python, Java]
期待される出力:
重複削除後のリスト: [Java, Scala, Python]
アルゴリズム
ステップ1 - 開始 ステップ2 - リスト「input_list」とセット「result_set」を宣言する ステップ3 - 値を定義する ステップ4 - セットは重複値を持てないため、入力リストをセットに変換する ステップ5 - 結果を表示する ステップ6 - 終了
例1:main関数内ですべての処理を実行する場合
この例では、すべての操作を「main」関数の中にまとめて記述します。
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
System.out.println("必要なパッケージがインポートされました");
List<String> input_list = new ArrayList<String>();
input_list.add("Java");
input_list.add("Scala");
input_list.add("Python");
input_list.add("Java");
System.out.println("定義されたリスト: " +input_list.toString());
Set<String> result_set = new LinkedHashSet<String>(input_list);
System.out.println("重複削除後のリスト: "+result_set);
}
}
出力結果
必要なパッケージがインポートされました 定義されたリスト: [Java, Scala, Python, Java] 重複削除後のリスト: [Java, Scala, Python]
例2:オブジェクト指向プログラミングの形式で関数化する場合
この例では、操作を関数としてカプセル化し、オブジェクト指向プログラミングのスタイルで実装します。
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
public class Demo {
static void remove_duplicates(List<String> input_list){
Set<String> result_set = new LinkedHashSet<String>(input_list);
System.out.println("重複削除後のリスト: "+result_set);
}
public static void main(String[] args) {
System.out.println("必要なパッケージがインポートされました");
List<String> input_list = new ArrayList<String>();
input_list.add("Java");
input_list.add("Scala");
input_list.add("Python");
input_list.add("Java");
System.out.println("定義されたリスト: " +input_list.toString());
remove_duplicates(input_list);
}
}
出力結果
必要なパッケージがインポートされました 定義されたリスト: [Java, Scala, Python, Java] 重複削除後のリスト: [Java, Scala, Python]
ポイント解説:なぜLinkedHashSetを使うのか
重複削除にはSetインターフェースの特性を利用します。Setは数学的な集合を表すコレクションであり、同一の要素を1つしか保持できません。そのため、リストをSetに変換するだけで自動的に重複が排除されます。
中でもLinkedHashSetを使用する理由は、要素の挿入順序を保持しながら重複を除去できるためです。もし順序が不要であればHashSet、要素をソートした状態で保持したい場合はTreeSetを使用することもできます。用途に応じて適切な実装クラスを選択しましょう。
-
Pythonでリストから重複要素を削除する方法を徹底解説
重複した要素を含むリストが与えられたとき、重複を取り除いた新しいリストを作成するのが本記事のテーマです。初心者の方にも理解しやすいよう、基本的なアルゴリズムの手順から実際のコードまで順を追って解説していきます。 実行例 入力::[2,3,4,3,4,6,78,90] 出力::[2,3,4,6,78,90] アルゴリズム 重複要素を削除するための基本的な手順は以下の通りです。 元となるリストを作成する。 空の新しいリストを用意する。 元のリストの各要素を先頭から順番に走査する。 その要素が新しいリストにまだ存在しないかどうかを判定する。 存在しない場合のみ、新しいリストへ要素を追加する。
-
JavaでArrayListから重複要素を削除する方法【SetとStream API】
この記事では、JavaのArrayListから重複する要素を削除する方法を、具体的なコード例とともにわかりやすく解説します。代表的な2つのアプローチを紹介するので、目的や使用しているJavaのバージョンに応じて使い分けてください。 ArrayListから重複する文字列を削除する Setインターフェースには「重複した要素を保持できない」という特性があります。この特性を利用して、重複を含むArrayListを引数としてSetオブジェクトを生成すれば、手軽に重複を除去できます。 ポイントはLinkedHashSetを使うことです。通常のHashSetではなくLinkedHashSetを採用することで