关于数组的插入与删除
注:关于数组定义,
若 int[] A=new int [5];
A= new int[]{1,2,3};则会将5覆盖
,因此只能挨个赋值。

- 插入
在数组进行插入时,应注意对于整数型数组未填写数据时,默认为0,故只需判断需插入位置是否为0,若为0,说明该位置无数据,直接覆盖即可,若有数据,则判断数组最后一位是否为0,若为0,则说明还有存储空间,只需将n-1处及以后的元素挨个后移即可,否则说明无存储空间。
代码如下:
public void testInsert(int []A,int n,int c){
//n,插入位置,c,值
//先判断插入的位置,大于数组长度或者小于0为非法插入
if(n<0||n>=A.length)
System.out.println("超出存储空间");
else if(A[n-1]==0){
A[n-1]=c;
}
else if(A[A.length-1]==0)
//判断是否有剩余空间,当按照顺序存储时,未填充区域默认为0
{
for(int i=A.length-1;i>n-1;i--){
A[i]=A[i-1];
}
A[n-1]=c;
}
else System.out.println("数组无剩余空间,插入失败。");
for (int i=0;i<A.length;i++){
System.out.println(A[i]);
}
}
- 删除
删除时仍同上,先判断该位置是否为0,若为0,说明无数据,不需要删除,若不为0,则将第n个元素覆盖在第n-1个元素上,完成删除。
代码如下:
public void testDelete(int []A,int n){
//先判断插入的位置,大于数组长度或者小于0为非法删除
if(n<0||n>=A.length)
System.out.println("超出存储空间");
else if(A[n]!=0)
//判断访问位置是否为0,若为0,则说明未填充数据,删除失败
{
for(int i=n-1;i<=A.length-1-1;i++){
A[i]=A[i+1];
}
A[A.length-1]=0;
}
else System.out.println("数组该位置无数据,删除失败。");
for (int i=0;i<A.length;i++){
System.out.println(A[i]);
}
}
Java数组的插入与删除操作
博客围绕Java数组的插入与删除展开。插入时,需判断插入位置和数组末尾是否为0,以确定是否有存储空间及操作方式;删除时,先判断位置是否为0,不为0则用后一元素覆盖当前元素。还提及数组定义时的赋值注意事项。
779

被折叠的 条评论
为什么被折叠?



