了解数据的插入与删除的原理对我们学习ArrayList集合有很大的帮助,面试的时
候也可能会手写,所以熟悉掌握数组中数据的插入与删除方法必要性还是有的
1.数据的插入:
我们先创建一个数组,然后自己定义一个方法实现插入功能,将此方法定义为insert吧,我们
可以得知,insert方法有参数,分别为你要进行插入数据的数组,你要插入的地方(也就是索
引),你要插入的值,此方法也可以有个返回值,返回删除后的数组
我们可以先在方法内建一个新的数组,这个数组的容量比传进去的数组的容量大 1 ,同时我
们再定义一个局部变量j,来进行自增,接着就是通过for循环进行第一次传值,也就是新数组
copy[]=arr[] 因为我们要插入数据,所以当 i 的值为index的时候,就需要进行插入数据的操作了,
也就是 copy[]=num 进行过这个语句之后,i的值就会多1,原本 如果继续循环,则原本在这个位置
上的值就会被覆盖掉,所以我们可以break一下,执行第二个循环来进行插入的数据之后的赋值,
最后返回一下就ok了。
public static int[] insert(int[] arr,int index,int num){
int[] copy = new int[arr.length+1];
int j = 0;
for (int i = 0; i <= index; i++) {
if (i==index){
copy[j++]=num;
break;
}
copy[j++]=arr[i];
}
for (int i = j-1; i < arr.length; i++) {
copy[j++]=arr[i];
}
return copy;
}
2.数据的删除
想必大家对插入数据也都了解了,这里也不多费口舌了,数据的删除和插入相差不差,也是
在方法内创建一个新数组 copy[],这个数组的容量比原来的数组小 1 ,接着通过for循环进行便利
赋值,如果 i 等于index的时候 可以直接用continue关键字跳过此次循环,再接着赋值就ok
public static int[] delete(int[] arr,int index){
int[] copy = new int[arr.length-1];
int j =0;
for (int i = 0; i < arr.length; i++) {
if (i==index){
continue;
}
copy[j++]=arr[i];
}
return copy;
}
最后再把主函数的代码附上算了,使用了Arrays的toString方法打印的数组
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
System.out.println("原数组为:"+Arrays.toString(arr));
int [] newArr1 = insert(arr,3,10);
int [] newArr2 = delete(arr,2);
System.out.println("插入后的数组为:"+Arrays.toString(newArr1));
System.out.println("删除后的数组为:"+Arrays.toString(newArr2));
}