欢迎访问宙启技术站
智能推送

如何使用Java函数删除数组中指定元素?

发布时间:2023-10-27 11:35:38

在Java中,要删除数组中指定的元素,可以使用以下方法:

方法一:新建一个数组,将不需要删除的元素复制到新数组中。这种方法的思路是先遍历原数组,统计需要删除的元素的数量。然后根据此数量创建一个新的数组,将不需要删除的元素复制到新数组中。最后将新数组赋值给原数组,完成删除操作。

public static int[] removeElement(int[] arr, int elem) {
    int count = 0;

    // 统计需要删除的元素的数量
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == elem) {
            count++;
        }
    }

    // 创建新的数组,长度为原数组的长度减去需要删除的元素的数量
    int[] newArr = new int[arr.length - count];

    int newIndex = 0;
    // 复制不需要删除的元素到新数组中
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] != elem) {
            newArr[newIndex] = arr[i];
            newIndex++;
        }
    }

    // 将新数组赋值给原数组
    arr = newArr;

    return arr;
}

方法二:使用ArrayList。Java中的ArrayList类提供了方法remove()用于删除指定元素,可以先将数组转换成ArrayList,然后使用remove()方法删除指定元素,最后再将ArrayList转换回数组。

import java.util.ArrayList;
import java.util.List;

public static int[] removeElement(int[] arr, int elem) {
    // 转换成ArrayList
    List<Integer> list = new ArrayList<>();
    for (int i : arr) {
        list.add(i);
    }

    // 删除指定元素
    while (list.contains(elem)) {
        list.remove((Integer) elem);
    }

    // 转换回数组
    int[] newArr = new int[list.size()];
    for (int i = 0; i < newArr.length; i++) {
        newArr[i] = list.get(i);
    }

    return newArr;
}

以上两种方法均可以实现删除数组中指定元素的功能,具体使用哪种方法可根据个人需求选择。