一,根据数组元素值删除数组指定值
1,数组类型转换为list类型,但是此时的list的类型是内部类,默认抛出异常,不做任何处理
2,将内部类的list类型转换为工具类的list类型,因为工具类的list类型重新定义了list的一些add,remove等方法
3,使用该方法来清除数组中指定的元素名称
public static void main(String[] args){
String[] nums = {"1","3","6","7","9"};
List<String> list1=Arrays.asList(nums);
List<String> arrList = new ArrayList<String>(list1);
arrList.remove("7");
System.out.println(arrList); //[1, 3, 6, 9]
}
补充:Java 删除String[] 数组中的指定元素 注意事项
二,根据数组索引删除数组元素值
原本计划:
1,确定索引位置,将后一位的数字赋值给前一位,通过覆盖的方式完成删除指定索引的元素值
2,但是后来查到说,在Java中,一旦数组长度初始化,则不可再更改(还不懂里面的设计原理)
后话:当然如果把数组转换为list链表结构的话,长度是可以改变的
补充链接:Java实现长度可变数组
所以使用第二种想法
1,new一个长度比原数组少一个的新数组,
2,然后将处理好的数组放入新数组中
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int index = 5;
int[] newArr = new int[arr.length - 1];
for (int i = index; i < arr.length-1; i++) {
arr[i]=arr[i+1];
}
for (int i = 0; i < newArr.length; i++) {
newArr[i]=arr[i];
}
System.out.println(Arrays.toString(newArr));// [1, 2, 3, 4, 5, 7, 8, 9]
}
补充链接:Java基础-按索引删除数组元素