关于#java#的问题:java定义一个public void delete(int[] a,int i)方法,删除数组中包含i的数值,并在Main主方法中进行测试

如何用java定义一个public void delete(int[] a,int i)方法,删除数组中包含i的数值,并在Main主方法中进行测试?

该回答引用chatgpt:

public class ArrayDeletion {
    public static void delete(int[] a, int i) {
        int j = 0;
        for (int k = 0; k < a.length; k++) {
            if (a[k] != i) {
                a[j] = a[k];
                j++;
            }
        }
        while (j < a.length) {
            a[j] = 0;  // 将删除元素后面的位置置为0
            j++;
        }
    }

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6};
        int i = 3;
        delete(arr, i);
        System.out.println(Arrays.toString(arr));  // 输出 [1, 2, 4, 5, 6, 0]
    }
}


不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    答案:

    // 定义一个带有参数的public void delete方法,用于从数组中删除包含指定值的元素
    public static void delete(int[] arr, int val) {
        int index = 0;
        // 遍历数组并删除指定值
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != val) {
                arr[index++] = arr[i];
            }
        }
        // 删除剩余的多余元素
        while (index < arr.length) {
            arr[index++] = 0;
        }
    }
    
    // 在Java的Main方法中调用该方法进行测试
    public static void main(String[] args) {
        // 定义一个数组
        int[] arr = {1, 2, 3, 4, 5, 4, 6};
        // 打印删除前的数组
        System.out.println("删除前的数组:" + Arrays.toString(arr));
        // 调用delete方法,删除指定值
        delete(arr, 4);
        // 打印删除后的数组
        System.out.println("删除后的数组:" + Arrays.toString(arr));
    }
    

    输出:

    删除前的数组:[1, 2, 3, 4, 5, 4, 6]
    删除后的数组:[1, 2, 3, 5, 6, 0, 0]
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^