import java.util.Arrays;
/**
对象数组与管理
使用对象数组实现多个Chicken的管理
动态数组:
1.数组是一种线性数据结构
2.数组不合适和做删除插入,适合查找、添加
*/
public class test2{
public static void main(String[] args) {
ChikenManager cm =new ChikenManager(5);
cm.add(new Chiken(1,"小小",10));
cm.add(new Chiken(2,"小二",10));
cm.add(new Chiken(3,"小三",1));
cm.add(new Chiken(4,"小四",6));
cm.add(new Chiken(5,"小五",10));
cm.add(new Chiken(6,"小留",10));
System.out.println("数组的长度是:"+cm.length());
System.out.println("---------printAll-------------");
cm.printAll();
System.out.println("-----------find-----------");
Chiken c=cm.find(5);
c.print();
System.out.println("-----------update-----------");
cm.update(new Chiken(1,"下蛋公鸡",20));
cm.printAll();
System.out.println("-----------delete-----------");
cm.delete(2);
cm.printAll();
}
}
class ChikenManager{
private Chiken[] cs=null;
private int count=0;//记录当前数组元素个数
public ChikenManager(int size){
if(size>0){
cs=new Chiken[size];
}else{
cs=new Chiken[5];
}
}
public int length(){
return cs.length;
}
//添加
public void add(Chiken c){
if(count>=cs.length){
//算法1:扩充原来数组一半 cs.length*3/2+1
//算法2:扩充原来数组一赔 cs.length*2
int newLen=cs.length*2;
cs=Arrays.copyOf(cs, newLen);
}
cs[count] = c;
count++;
}
//删除
public void delete(int id){
for(int i=0;i<count;i++){
if(cs[i].getId()==id){
for(int j=i;j<count-1;j++){
cs[j]=cs[j+1];
}
cs[count-1]=null;
count--;
break;
}
}
}
//更新
public void update(Chiken c){
Chiken temp =find(c.getId());
if(temp!=null){
temp.setName(c.getName());
temp.setAge(c.getAge());
}
}
public Chiken find(int id){
for(int i=0;i<count;i++){
if(cs[i].getId()==id){
return cs[i];
}
}
return null;
}
public void printAll(){
for(int i=0;i<count;i++){
cs[i].print();
}
}
}
//小鸡类
class Chiken{
private int id;
private String name;
private int age;
public Chiken(){}
public Chiken(int id,String name,int age){
this.id=id;
this.name=name;
this.age=age;
}
public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void print(){
System.out.println("id="+id+",name="+name+",age="+age);
}
}
java数组面向对象增删改查
猜你喜欢
转载自blog.csdn.net/weixin_44117272/article/details/89409461
今日推荐
周排行