实现在一个数组指定位置添加元素和删除元素的功能。
提示:解答该题需要考虑如下问题
添加元素后超过数组容量时数组的扩展容量问题。
添加元素前后数组中元素的变化。
删除元素前后数组中元素的变化。
public class ArrayInsertDel{
int[] arr={20,18,12,39,23,100};
int count=6;
public void insert(int pos,int num){
if(arr.length==count){
expand();
}
for(int i=count;i>pos;i--){
arr[i]=arr[i-1];
}
arr[pos]=num;
count++;
}
public void delete(int pos){
count--;
for(int i=pos;i<=count;i++){
arr[i]=arr[i+1];
}
}
public void print(){
System.out.print("[");
for(int i=0;i<count;i++){
System.out.print(arr[i]+" ");
}
System.out.println("]");
}
public void expand(){
int[] arr2=new int[arr.length*2];
System.arraycopy(arr,0,arr2,0,arr.length);
arr=arr2;
}
public static void main(String[] args){
ArrayInsertDel aid=new ArrayInsertDel();
aid.print();
aid.insert(3,110);
aid.insert(5,119);
aid.print();
aid.delete(4);
aid.print();
}
}
这段 Java 代码定义了一个名为 ArrayInsertDel
的类,实现了在数组中插入和删除元素的操作。
-
arr
数组:这个数组包含了一些初始的整数元素。 -
count
变量:表示当前数组中元素的个数。 -
insert
方法:用于在指定位置插入一个新元素。如果数组已满,则会调用expand
方法进行数组扩容,然后将元素插入到指定位置,并适当调整数组中的元素。 -
delete
方法:用于删除指定位置的元素。删除后,会调整数组中的元素,使其保持连续。 -
print
方法:用于打印当前数组中的元素。 -
expand
方法:用于对数组进行扩容。在数组已满需要插入新元素时,会调用这个方法来创建一个新的数组,将原数组的内容复制到新数组中,并将arr
指向新数组。 -
main
方法:在main
方法中创建一个ArrayInsertDel
对象,并调用其方法来展示插入和删除元素的操作。
总之,这个代码展示了如何通过自定义类的方法来操作数组,包括插入和删除元素,并且在需要时进行数组的扩容。