数组的插入 在移动位置时是在最后一个开始动的
public class pratise {
public static void main(String[] args) {
System.out.println("请输入数组的长度");
Scanner scanner=new Scanner(System.in);
int sc=scanner.nextInt();
int [] arr=new int[sc];
//记录数组的长度
int size=0;
System.out.println("请输入你数组的值");
for(int i=0;i<arr.length;i++) {
int a=scanner.nextInt();
if(a==0) {
break;
}
arr[i]=a;
size++;
}
System.out.println("打印的数组"+Arrays.toString(arr));
System.out.println("定义你要输入的值");
int value=scanner.nextInt();
System.out.println("输入你要插入的位置");
int index=scanner.nextInt();
insert(arr, value, index, size);
System.out.println("插入后的打印的数组"+Arrays.toString(arr));
}
public static void insert(int[] arr,int value, int index,int size) {
if(index<0||index>size) {
}else {
if(size ==arr.length) {
/*扩容*/
int[] temp =new int[arr.length*2];
for(int i=0;i<arr.length;i++) {
temp[i]=arr[i];
}
arr=temp;
}
}
//插入后位置向后移动
for(int i=size-1;i>=index;i--) {
arr[i+1]=arr[i];
}
//插入数据
arr[index]=value;
}
}
数组的删除
//删除
public static void delete(int[] arr,int c,int size) {
for(int j=0;j<arr.length;j++) {
if(arr[j]==c){
for(int i=j;i<size;i++) {
if(i==size-1) {
arr[i]=0;
break;
}
arr[i]=arr[i+1];
}
break;
}
}