对象数组

来源:互联网 发布:58上好多开淘宝店 编辑:程序博客网 时间:2024/05/16 12:02
import java.util.Arrays;class ObjectArrayDemo{public static void main(String[] args) {MonkeyManager mm = new MonkeyManager();mm.add(new Monkey("悟空",'公'));mm.add(new Monkey("悟饭",'公'));mm.add(new Monkey("小白",'母'));mm.list();System.out.println("--------------------------");mm.delete("悟饭");mm.list();System.out.println("--------------------------");mm.find("小白");Monkey m1 = mm.find("小白");m1.print();System.out.println("--------------------------");Monkey m2 = new Monkey("小白",'公');mm.update(m2);mm.list();System.out.println("--------------------------");mm.add(new Monkey("小黑",'公'));mm.add(new Monkey("小红",'母'));mm.add(new Monkey("小黑",'公'));mm.add(new Monkey("小红",'母'));mm.list();}}//Monkey管理类class MonkeyManager{private Monkey[] monkeys = new Monkey[3];private int count = 0;//当前对象的个数//添加Monkeypublic void add(Monkey m){//当数组空间不足,需要进行动态扩展if(count>=monkeys.length){//新数组的长度(当前数组长度的一半左右)int newlen = (monkeys.length*3)/2+1; monkeys = Arrays.copyOf(monkeys,newlen);}monkeys[count] = m;count++;/*if(count<monkeys.length){monkeys[count] = m;count++;}else{System.out.println("空间已满");}*/}//删除Monkeypublic void delete(String name){for(int i=0;i<count;i++){//equals:表示比较两个字符串的值是否相等,为什么用equals呢?因为对象存放在堆里面而且==比较在栈里面//==表示比较两个对象的内存地址if(monkeys[i].getName().equals(name)){//循环把后面对象往前移动for(int j=i;j<count-1;j++){monkeys[j] = monkeys[j+1];}//吧最后一个元素赋值为nullmonkeys[count-1] = null;count--;}}}//查找public Monkey find(String name){for(int i=0;i<count;i++){if(monkeys[i].getName().equals(name)){return monkeys[i];}}return null;}//修改Monkeypublic void update(Monkey monkey){Monkey m = find(monkey.getName());if(m!=null){m.setSex(monkey.getSex());}}//遍历对象数组public void list(){for(int i=0;i<count;i++){monkeys[i].print();//System.out.println(monkeys[i]);}}}class Monkey{private String name;private char sex;public Monkey(){}public Monkey(String name,char sex){this.name= name;this.sex = sex;}public void setName(String name){this.name = name;}public String getName(){return name;}public void setSex(char x){this.sex = sex;}public char getSex(){return sex;}public void print(){System.out.println("name="+name);}}

0 0
原创粉丝点击