[Java]配列(Array)の同じ値(重複)を削除するには?

Java

どうも、ちょげ(@chogetarou)です。

配列(Array)から重複する同じ値を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(Array)から重複する同じ値を削除する方法は、2つあります。

distinct()

1つは、distinct()を使う方法です。

まず、Arraysをインポートします。

import java.util.Arrays;

次に、Arraysからstream()を呼び出します。

stream()の引数に、配列を指定します。

そして、stream()からdistinct()、distinct()からtoArray()を呼び出します。

T[] result = Arrays.stream(array).distinct().toArray();

上記のtoArray()は、呼び出した配列から重複する同じ値を削除した配列(Array)を返します。

使用例

import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws Exception {
        int[] numbers = { 1, 3, 1, 2, 3, 1, 2, 2 };
        
        int[] result = Arrays.stream(numbers).distinct().toArray();
        
        for (int i: result) {
            System.out.println(i);   
        }
    }
}
出力:
1
3
2

Set

もう1つは、Setを使う方法です。

まず、必要なものをインポートします。

import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;
import java.util.stream.Collectors;

次に、配列をSetに変換します。

そして、SetからtoArray()を呼び出します。

//T=オブジェクト型
Set<T> set = Arrays.stream(array)
    .boxed()
    .collect(Collectors.toSet()); //配列をSetに変換

T[] result = set.toArray(new T[0]); //重複を削除した配列を取得

上記のtoArray()は、配列から重複する同じ値を削除した配列(Array)を返します。

使用例

import java.util.Set;
import java.util.HashSet;
import java.util.Arrays;
import java.util.stream.Collectors;

public class Main {
    
    public static void main(String[] args) throws Exception 
    {
        int[] numbers = { 1, 3, 1, 2, 3, 1, 2, 2 };
        
        Set<Integer> set = Arrays.stream(numbers).boxed().collect(Collectors.toSet());
        Integer[] result = set.toArray(new Integer[0]);
        
        for (int i: result) 
        {
            System.out.println(i);   
        }
    }
}
出力:
1
3
2

まとめ

配列(Array)から重複する同じ値を削除する方法は、次の2つです。

  • distinct()を使う方法
    T[] result = Arrays.stream(array).distinct().toArray();
  • Setを使う方法

コメント

タイトルとURLをコピーしました