本章只谈个人的简陋理解,如有差错,评论区不吝赐教,谢谢!
在Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。
其中关于filter方法:
filter 方法用于通过设置的条件过滤出元素。
举个栗子:
1.以下代码片段使用 filter 方法过滤出空字符串
List<String>strings = Arrays.asList("我", "", "爱吃", "", "小咯龙虾","", "拌饭");
// 获取空字符串的数量
long count = strings.stream().filter(string -> string.isEmpty()).count();
List studentList = new ArrayList<>(); student.add(new
Student(“黄大”,true,18,1.76);
student.add(new
Student(“王二”,false,18,1.61);
student.add(new
Student(“张三”,true,19,1.82);
student.add(new
Student(“李四”,false,17,1.67);
输出如下
姓名 | 性别 | 年龄 | 身高 |
---|---|---|---|
黄大 | true | 18 | 1.76 |
王二 | false | 18 | 1.61 |
张三 | true | 19 | 1.82 |
李四 | false | 17 | 1.67 |
//查找身高在1.8米及以下的男生
List<Student> boys = student.stream().filter(s->s.getGender() && s.getHeight() >= 1.8).collect(Collectors.toList());
//输出查找结果
StudentInfo.printStudents(boys);
输出结果
姓名 | 性别 | 年龄 | 身高 |
---|---|---|---|
黄大 | true | 18 | 1.76 |
细品栗子会发现还是比较好理解的
栗子中的“s”可以理解为这个方法中可理解为对象(可以自定义名字),
“s->”是一种写法,后面的“s.getGender() && s.getHeight() >= 1.8”,是过滤条件。“collect(Collectors.toList())”,可理解为遍历这个集合对象,从中找到符合条件的数据。
本文只为技术交流不做商用,如有重复请见谅私信!!!!!!!!!!