对象数组中实现动态数组的添加以及删除功能


假设有一个Chicken类,小鸡类的id是唯一的,还有一个ChickenManager小鸡管理类,下列功能在小鸡管理类中定义

 

int count =  0;                        //定义一个变量表示动态数组的长度

Chicken[ ]  chicken = null;    // 在小鸡管理类中创建小鸡对象

//动态数组的添加功能

public void add(Chicken c){

  //判断是否到达数组长度

  if(count >= chicken.length){

  int newlen = chicken.length*2;                      //扩充数组

  chicken = Arrays.copyOf(chicken,newlen);   //调用Arrays方法复制数组

}

  chicken[count] = c;                                      

  count++;

}

 

//动态数组的删除功能

public void del(int id){                                

  for(int i = 0;i<count;i++){                             //先通过id号查找到要删除的小鸡

    if(chicken[i].getId() == id){          

      for(int j = i;j<count-1;j++){            //找到该小鸡后,后面的小鸡依次往前挪动,避免出现数组之间有空

        chicken[j] = chicken[j+1];

      }

        chicken[count-1] = null;        //最后把数组最后一个元素赋值为空,并减掉一个数组长度

        count--;

        break;

    }

  }

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM