关于#java#的问题,请各位专家解答!(开发工具-eclipse)

img

img


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

1.首先arr是一个String类型的数组,数组里面只能存放String类型的值。

2.arr[0]的值是指字符串anew一个Girl对象赋值给arr[0],由于数据类型不匹配,编译器报错警告。

3.可以如下这样操作

// 创建Girl对象
Girl girl = new Girl();
// 创建装10个Girl类型的数组
Girl[] arr=new Girl[10];
// 赋值
arr[0]=girl;

这个使用集合加stream


```java
import java.util.ArrayList;
import java.util.List;

public class Test {

    static class Girl {
//        姓名name、
        String name;
//        年龄age、
        Integer age;
//        颜值face、
        Integer face;
//        身高height、
        Integer height;
//        省份add、
        String add;
//        爱好hobby
        String hobby;

        public Girl() {
        }

        public Girl(String name, Integer age, Integer face, Integer height, String add, String hobby) {
            this.name = name;
            this.age = age;
            this.face = face;
            this.height = height;
            this.add = add;
            this.hobby = hobby;
        }
    }

    public static void main(String[] args) {
        // 1. 在主类中创建5个Girl类的对象,并将她们放进一个数组中。这里用了list,可和数组互转
        List<Girl> girls = new ArrayList<>();
        // Todo: 一个个new新增进去
        Girl girl = new Girl();
        girls.add(girl);
        // 2,输出省份是广东的女生的名字
        List<String> gd = new ArrayList<>();
        girls.stream().filter(e -> e.add.equals("gd")).forEach(e -> gd.add(e.name));
        // TODO : 再遍历gd可输出名字

        // 3,输出颜值高于80且身高高于165cm的女生的名字、颜值、身高
        List<Girl> niceGirls = new ArrayList<>();
        girls.stream().filter(e -> e.face > 80 && e.height > 165).forEach(e -> niceGirls.add(e));
        // TODO : 再遍历niceGirls可输出名字、颜值、身高

        // 4,把爱好为"购物"的女生的年龄存入一个ageArr数组
        List<Integer> shoppingGirls = new ArrayList<>();
        girls.stream().filter(e -> e.hobby.contains("shopping")).forEach(e -> shoppingGirls.add(e.age));
        //  这里用了list,可和数组互转
        Integer[] ageArr = shoppingGirls.toArray(new Integer[shoppingGirls.size()]);

        // 3,输出颜值高于80且身高高于165cm的女生的名字、颜值、身高
        List<Girl> highFace = new ArrayList<>();
        girls.stream().filter(e -> e.face >= 60).forEach(e -> highFace.add(e));
        // 这里用了list,可和数组互转
        Girl[] arr = highFace.toArray(new Girl[highFace.size()]);
    }
}


```