Java
 Computer >> コンピューター >  >> プログラミング >> Java

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]

  1. JavaでMySQLテーブルのデータをリスト(ArrayList)として取得する方法

    JavaでMySQLテーブルからデータを取得してリスト形式に格納したい場合、ArrayListの概念を活用するのが効果的です。特に、ArrayList<ArrayList<データ型>>のように入れ子構造のArrayListを使うことで、テーブルの各行を内側のリスト、テーブル全体を外側のリストとして管理できます。基本的な構文ArrayList<ArrayList<yourDataType>> anyVariableName = new ArrayList<ArrayList<yourDataType>>();サンプルテーブル

  2. 【保存版】Excelでドロップダウンリストの重複を削除する4つの方法

    大量のデータをMicrosoft Excelで扱っていると、ドロップダウンリストを作成したものの、リスト内に重複した値が含まれてしまい困ることがあります。実は、この重複を削除するのはとても簡単で、正しい手順を知っていれば作業時間と手間を大幅に節約できます。本記事では、Excelのドロップダウンリストから重複値を効率的に取り除くための4つの方法を、分かりやすい図解とともに詳しく解説します。 Excelのドロップダウンリストから重複を削除する4つの方法 ここでは、ある国がヨーロッパの3カ国に輸出した果物や野菜に関する情報が記録された大きなワークシートを例にします。データには商品名(Product