配列から特定の要素を削除する Java の方法
Javaでは配列の長さは固定で直接要素などを削除することはできない。新しく配列を作成し、既存の配列で削除する必要がない要素を新しい配列にコピーすることで要素の削除を実現する。具体的には以下の手順で行う。
- 元の配列を走査し、削除する必要のある要素の数を数えます。
- 元の配列から削除する必要のある要素の分だけ短い、新しい配列を作成します。
- 元の配列を再びイテレートして、削除する必要のない要素を新しい配列にコピーします。
- 結果として新しい配列を返す。
それではサンプルコードを見てみましょう。
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 を削除しました。