如何用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]
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:答案:
// 定义一个带有参数的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]