1.首先arr
是一个String类型的数组
,数组里面只能存放String类型的值。
2.arr[0]
的值是指字符串a
,new
一个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()]);
}
}
```