先说Java数组的插入操作 :数组a定义为: 【1】【2】【3】【4】【5】 我想要在a数组的第3个位置插入6 那么第3个位置和它之后的的数组的位置都应该向后移动一位
【1】【2】【6】【3】【4】【5】
而我们知道array 数组是定义了之后就不变的 所以我们要新定义一个比原来的数组长度长1为的数组 也就是 int[] b=new int[a.length+1];
然后B数组的第一个元素为原先数组的第一个 第二个为原先的第二个
当到第三个时 b数组的第三个就等于要插入的值 这里是6;
然后第三个之后的 都为对应a数组+1的位置 也就是b[i]=a[i+1];
删除操作 采用同样的分析方法可得
修改 就是直接替换一个值
代码如下:
package arrayOperator; public class arrayOperation { public static int[] insert(int a[],int index,int value){ int b[]=new int[a.length+1]; for(int i=0;i<b.length;i++){ if(i<index-1){ b[i]=a[i]; } if(i==index-1){ b[i]=value; } if(i>index-1){ b[i]=a[i-1]; } } return b; } public static void print(int a[]){ for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } System.out.println(); } public static int[] delete(int a[],int index){ int b[]=new int[a.length-1]; for(int i=0;i<b.length;i++){ if(i<index-1){ b[i]=a[i]; } else{ b[i]=a[i+1]; } } return b; } public static int[] update(int a[],int index,int value){ a[index-1]=value; return a; } public static void main(String args[]){ int[] a={1,2,3,4,5,6}; int[] b=insert(a,3,7); //在数组a的第三个位置插入7 print(b); b=delete(a,2); //删除a数组的2个袁术 print(b); b=update(a,4,9); //将a数组的第4个元素改为9 print(b); } }