作业简述:
/* 作业四: 1) javabean类 学生类 姓名 年龄 性别 小区 小区类 地址 姓名 总人数 性别类 男 女 2) 1. 汇总小区名为"海德堡"的学生的总数; 2. 汇总小区名为"海德堡"的学生的姓名集合; 3. 返回住在阳光丽兹+海德堡的学生的平均年龄; 4.拿到年龄大于平均年龄的所有学生的姓名集合; */
List<StreamStudent> list =new ArrayList();
list.add(new StreamStudent("张三",20,new StreamSex("男"),new StreamCommunity("安徽","海德堡",220)));
list.add(new StreamStudent("李四",26,new StreamSex("女"),new StreamCommunity("阜阳","水天华府",1000)));
list.add(new StreamStudent("王五",15,new StreamSex("女"),new StreamCommunity("洛阳","易景国际",520)));
list.add(new StreamStudent("刘星",15,new StreamSex("男"),new StreamCommunity("北京","海德堡",420)));
list.add(new StreamStudent("赵四",15,new StreamSex("男"),new StreamCommunity("上海","阳光丽兹",482)));
1. 汇总小区名为"海德堡"的学生的总数;
long sums = list.stream().filter(e -> e.getStreamCommunity().getCommuntityName().equals("海德堡"))
.distinct()
.count();
System.out.println("小区名为\"海德堡\"的学生的总数:\t"+sums);
2. 汇总小区名为"海德堡"的学生的姓名集合;
List<String> nameList = list.stream().filter(e -> e.getStreamCommunity().getCommuntityName().equals("海德堡"))
.map(e -> e.getName())
.distinct()
.collect(Collectors.toList());
System.out.println("小区名为\"海德堡\"的学生的姓名集合:\t"+nameList);
3. 返回住在阳光丽兹+海德堡的学生的平均年龄;
double average= list.stream().filter(e -> e.getStreamCommunity().getCommuntityName().equals("海德堡") || e.getStreamCommunity().getCommuntityName().equals("阳光丽兹"))
.distinct()
.mapToInt(StreamStudent::getAge).average().getAsDouble();
System.out.println("住在阳光丽兹+海德堡的学生的平均年龄:\t"+average);
4.拿到年龄大于平均年龄的所有学生的姓名集合;
double allAverage = list.stream()
.mapToInt(StreamStudent::getAge).average().getAsDouble();
System.out.println("平均年龄:\t"+allAverage);
List<StreamStudent> collect = list.stream().filter(e -> e.getAge() > allAverage)
.distinct()
.collect(Collectors.toList());
System.out.println("年龄大于平均年龄的所有学生的姓名集合:\t"+collect);