配列から特定の要素を削除する Java の方法

Javaでは配列の長さは固定で直接要素などを削除することはできない。新しく配列を作成し、既存の配列で削除する必要がない要素を新しい配列にコピーすることで要素の削除を実現する。具体的には以下の手順で行う。

  1. 元の配列を走査し、削除する必要のある要素の数を数えます。
  2. 元の配列から削除する必要のある要素の分だけ短い、新しい配列を作成します。
  3. 元の配列を再びイテレートして、削除する必要のない要素を新しい配列にコピーします。
  4. 結果として新しい配列を返す。

それではサンプルコードを見てみましょう。

public static int[] removeElement(int[] arr, int element) {
    int count = 0; // 统计需要删除的元素的个数

    // 遍历原数组,统计需要删除的元素的个数
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == element) {
            count++;
        }
    }

    int[] newArr = new int[arr.length - count]; // 创建新的数组

    int j = 0; // 新数组的下标
    // 再次遍历原数组,将不需要删除的元素复制到新数组中
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] != element) {
            newArr[j] = arr[i];
            j++;
        }
    }

    return newArr;
}

public static void main(String[] args) {
    int[] arr = {1, 2, 3, 4, 5};
    int element = 3;
    int[] result = removeElement(arr, element);
    System.out.println(Arrays.toString(result));
}

出力結果は [1, 2, 4, 5] になります。つまり、配列から要素 3 を削除しました。

bannerAds