Java の重複排除メソッドは何ですか?

Java配列の重複を除去する方法は、以下の通りです。

  1. Setを利用する: 配列の要素をSet集合に保存する. Set集合は重複した要素を許可しないので、重複した要素は自動的に削除される. 最後にSet集合を配列に変換すればOK.
int[] array = {1, 2, 3, 4, 3, 2, 1};
Set<Integer> set = new HashSet<>();
for (int num : array) {
    set.add(num);
}
int[] result = new int[set.size()];
int index = 0;
for (int num : set) {
    result[index++] = num;
}
  1. リストへ配列の要素を入れ、Java 8 のストリームで重複を除去し、配列へ戻す。
int[] array = {1, 2, 3, 4, 3, 2, 1};
List<Integer> list = new ArrayList<>();
for (int num : array) {
    if (!list.contains(num)) {
        list.add(num);
    }
}
int[] result = list.stream().mapToInt(Integer::intValue).toArray();
  1. 配列をループして各要素ごとに、その後の要素をループして同じ要素があったらスキップ、なければ新しい配列に追加する、二重ループを使用する。
int[] array = {1, 2, 3, 4, 3, 2, 1};
int length = array.length;
for (int i = 0; i < length; i++) {
    for (int j = i + 1; j < length; j++) {
        if (array[i] == array[j]) {
            array[j] = array[length - 1];
            length--;
            j--;
        }
    }
}
int[] result = Arrays.copyOf(array, length);

以上、3種類の一般的な配列を重複しないようにする方法は、実際の状況に応じて適切な方法を選択することです。

bannerAds