どうも、ちょげ(@chogetarou)です。
配列(Array)から重複する同じ値を削除する方法を紹介します。
方法

配列(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を使う方法
コメント