求专家解答,怎样放进数组

img


//定义一个Girl类,
//属性有:姓名name、年龄age、颜值face、身高height、省份add、爱好hobby(有多个爱好)
//方法有:做饭cook、工作work、弹琴play//1,在主类中创建5个Girl类的对象,并将她们放进一个数组中。
//2,输出省份是广东的女生的名字
//3,输出颜值高于80且身高高于165cm的女生的名字、颜值、身高
//4,把爱好为"购物"的女生的年龄存入一个ageArr数组
//5,从数组中删除颜值低于60的女生

创建Girl类对象数组后,遍历对象数组,逐一判断即可。下面是我的一个实现,供参考:


import java.util.Arrays;

public class Girl {

    private String  name; //姓名
    private int age;  //年龄
    private int face;  //颜值
    private int height;  //身高
    private String add;  //省份
    private String[] hobby;  //爱好
    
    
    
    
    public Girl(String name, int age, int face, int height, String add, String[] hobby) {
        super();
        this.name = name;
        this.age = age;
        this.face = face;
        this.height = height;
        this.add = add;
        this.hobby = hobby;
    }



    public String getName() {
        return name;
    }



    public void setName(String name) {
        this.name = name;
    }



    public int getAge() {
        return age;
    }



    public void setAge(int age) {
        this.age = age;
    }



    public int getFace() {
        return face;
    }



    public void setFace(int face) {
        this.face = face;
    }



    public int getHeight() {
        return height;
    }



    public void setHeight(int height) {
        this.height = height;
    }



    public String getAdd() {
        return add;
    }



    public void setAdd(String add) {
        this.add = add;
    }



    public String[] getHobby() {
        return hobby;
    }



    public void setHobby(String[] hobby) {
        this.hobby = hobby;
    }

    
    public void cook() {
        System.out.println(this.getName()+"在做饭!");
    }
    
    public void work() {
        System.out.println(this.getName()+"在工作!");
    }
    
    public void play() {
        System.out.println(this.getName()+"在弹琴!");
    }


    
    @Override
    public String toString() {
        return "Girl [name=" + name + ", age=" + age + ", face=" + face + ", height=" + height + ", add=" + add
                + ", hobby=" + Arrays.toString(hobby) + "]";
    }



    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //1、创建5个Girl类对象
        Girl[] girls = new Girl[5]; //创建存储5个女生信息的数组
        //把女生信息数组逐一初始化赋值
        girls[0]= new Girl("小花",25,85,165,"广东", new String[] {"购物","追剧"});
        girls[1]= new Girl("小美",23,86,166,"北京", new String[] {"美食","高尔夫"});
        girls[2]= new Girl("小如",18,84,162,"上海", new String[] {"读书","追剧"});
        girls[3]= new Girl("小梅",22,83,168,"深圳", new String[] {"购物","打游戏"});
        girls[4]= new Girl("小月",26,59,160,"湖北", new String[] {"瑜伽","追剧"});
        
        
        //2、输出身份是广东女生的名字
        System.out.println("身份是广东的女生是:");
        for(Girl girl:girls) {
            
            if(girl.getAdd().equals("广东")) {
                System.out.print(girl.getName()+" ");
            }
        }
        System.out.println("\n");
        
        //3.输出颜值80且身高高于165cm的女生信息
        System.out.println("颜值高于80且身高高于165cm的女生有:");
        
        for(Girl girl:girls) {
            
            if(girl.getHeight()>165&&girl.getFace()>80) {
                System.out.print("姓名:"+girl.getName()+", 颜值:"+girl.getFace()+", 身高:"+girl.getHeight());
                System.out.println();
            }
            
        }
        System.out.println("\n");
        
        
        
    //4、把喜欢购物的女生年龄放入ageArr数组    
        int len=0;
        //遍历数组,寻找喜欢购物的有几个
        for(int i=0;i<5;i++) {
            
            String [] hobby = girls[i].getHobby();
            
            if(hobby!=null) {
                
                for(String ho:hobby) {
                    if(ho.equals("购物")) {
                        len++;
                        break;
                    }
                }
            }
            
        }
        
        
        
        int ageArr[] = new int[len]; //创建存储喜欢购物的女生的年龄数组
        int j=0;
        //再次遍历数组,将喜欢购物的女生年龄存入ageArr数组
        for(int i=0;i<5;i++) {
            
            String [] hobby = girls[i].getHobby();
            
            if(hobby!=null) {
                
                for(String ho:hobby) {
                    if(ho.equals("购物")) {
                        ageArr[j] = girls[i].getAge();
                        j++;
                    }
                }
            }
            
        }
        
        
        
        //打印结果
        System.out.println("喜欢购物的女生年龄如下:");
        for(int age:ageArr) {
            System.out.print(age+" ");
        }
        System.out.println("\n");
        
        //6.从数组删除颜值低于60的女生
        
        int num =0;
        for(Girl girl:girls) {
            
            if(girl.getFace()<60) {
                num++;
            }
        }
        
        //System.out.println("num="+num+",girl num="+girls.length);

        
        Girl [] finalGirl = new Girl[girls.length-num];    
        j=0;
        for(Girl girl:girls) {
            
            if(girl.getFace()>=60) {
                finalGirl[j]=girl;
                j++;
            }
        }
        girls = finalGirl;
        System.out.println("删除颜值低于60分的女生后的女生数组信息:");
        for(Girl girl:girls) {
            
            System.out.println(girl);
        }
        
    }

}

img

img