JavaでArrayListから重複要素を削除する方法【SetとStream API】
この記事では、JavaのArrayListから重複する要素を削除する方法を、具体的なコード例とともにわかりやすく解説します。代表的な2つのアプローチを紹介するので、目的や使用しているJavaのバージョンに応じて使い分けてください。
ArrayListから重複する文字列を削除する
Setインターフェースには「重複した要素を保持できない」という特性があります。この特性を利用して、重複を含むArrayListを引数としてSetオブジェクトを生成すれば、手軽に重複を除去できます。
ポイントはLinkedHashSetを使うことです。通常のHashSetではなくLinkedHashSetを採用することで、元のリストの要素順序を維持したまま、重複だけを取り除くことができます。
以下が具体的なコード例です。
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Set;
public class RemoveDuplicatesFromArrayList {
public static void main(String[] args) {
ArrayList<String> pets = new ArrayList<>();
pets.add("cat");
pets.add("dog");
pets.add("cat");
pets.add("hamster");
System.out.println(pets);
Set<String> hashSet = new LinkedHashSet(pets);
ArrayList<String> removedDuplicates = new ArrayList(hashSet);
System.out.println(removedDuplicates);
}
}
実行結果:
[cat, dog, cat, hamster]
[cat, dog, hamster]
- Javaで2つのArrayListを比較する方法
- JavaでArrayListをループ処理する方法
- Javaでリストを配列に変換する方法
リストから重複する整数を削除する
同じ手法は、整数(Integer)のリストに対してもそのまま適用できます。型が変わっても処理の流れはまったく同じです。
import java.util.*;
public class RemoveDuplicatesFromArrayList {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1,2,2,2,3,5);
System.out.println(numbers);
Set<Integer> hashSet = new LinkedHashSet(numbers);
ArrayList<Integer> removedDuplicates = new ArrayList(hashSet);
System.out.println(removedDuplicates);
}
}
実行結果:
[1, 2, 2, 2, 3, 5]
[1, 2, 3, 5]
Java 8のStream APIを使ってリストから重複を削除する
Java 8以降を使用している場合は、Stream APIのdistinct()メソッドを利用すると、より簡潔に重複を削除できます。中間コレクションとしてSetを明示的に作成する必要がないため、コードの可読性も向上します。
import java.util.*;
import java.util.stream.Collectors;
public class RemoveDuplicatesFromArrayList {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1,2,2,2,3,5);
System.out.println(numbers);
List<Integer> removedDuplicates = numbers.stream()
.distinct()
.collect(Collectors.toList());
System.out.println(removedDuplicates);
}
}
実行結果:
[1, 2, 2, 2, 3, 5]
[1, 2, 3, 5]
-
JavaでMySQLテーブルのデータをリスト(ArrayList)として取得する方法
JavaでMySQLテーブルからデータを取得してリスト形式に格納したい場合、ArrayListの概念を活用するのが効果的です。特に、ArrayList<ArrayList<データ型>>のように入れ子構造のArrayListを使うことで、テーブルの各行を内側のリスト、テーブル全体を外側のリストとして管理できます。基本的な構文ArrayList<ArrayList<yourDataType>> anyVariableName = new ArrayList<ArrayList<yourDataType>>();サンプルテーブル
-
【保存版】Excelでドロップダウンリストの重複を削除する4つの方法
大量のデータをMicrosoft Excelで扱っていると、ドロップダウンリストを作成したものの、リスト内に重複した値が含まれてしまい困ることがあります。実は、この重複を削除するのはとても簡単で、正しい手順を知っていれば作業時間と手間を大幅に節約できます。本記事では、Excelのドロップダウンリストから重複値を効率的に取り除くための4つの方法を、分かりやすい図解とともに詳しく解説します。 Excelのドロップダウンリストから重複を削除する4つの方法 ここでは、ある国がヨーロッパの3カ国に輸出した果物や野菜に関する情報が記録された大きなワークシートを例にします。データには商品名(Product