当前位置:实例文章 » 其他实例» [文章]55、stream流之过滤

55、stream流之过滤

发布人:shili8 发布时间:2025-03-14 22:35 阅读次数:0

**Stream 流之过滤**

在 Java 中,`Stream` 是一种高级的 API,用来处理数据集合。它提供了许多有用的方法来操作数据,如过滤、映射、聚合等。在本文中,我们将重点讨论 `Stream` 的过滤功能。

**什么是过滤**

过滤是一种常见的数据操作,用于从原始数据集中筛选出满足某些条件的元素。例如,如果我们有一个集合包含学生的信息,我们可能想过滤出年龄大于18 岁的学生。

**使用 `Stream` 过滤**

在 Java 中,可以使用 `Stream` 的 `filter()` 方法来实现过滤功能。该方法接受一个 `Predicate` 接口作为参数,用于指定过滤条件。

javaimport java.util.Arrays;
import java.util.List;

public class Student {
 private String name;
 private int age;

 public Student(String name, int age) {
 this.name = name;
 this.age = age;
 }

 public String getName() {
 return name;
 }

 public int getAge() {
 return age;
 }
}

public class Main {
 public static void main(String[] args) {
 List students = Arrays.asList(
 new Student("张三",20),
 new Student("李四",19),
 new Student("王五",21)
 );

 // 过滤年龄大于18 岁的学生 List filteredStudents = students.stream()
 .filter(student -> student.getAge() >18)
 .toList();

 System.out.println(filteredStudents);
 }
}


在上面的例子中,我们首先创建一个 `Student` 类,包含 `name` 和 `age` 属性。然后,我们使用 `Arrays.asList()` 方法创建一个学生集合。

接下来,我们使用 `stream()` 方法将集合转换为 `Stream` 对象,然后调用 `filter()` 方法过滤出年龄大于18 岁的学生。最后,我们使用 `toList()` 方法将过滤后的结果转换为列表,并打印出来。

**使用 Lambda 表达式**

在 Java 中,可以使用 Lambda 表达式来简化代码。在上面的例子中,我们可以使用 Lambda 表达式来实现过滤功能。

javaList filteredStudents = students.stream()
 .filter(student -> student.getAge() >18)
 .toList();


在这个例子中,我们直接使用 Lambda 表达式 `student -> student.getAge() >18` 来指定过滤条件。

**使用方法引用**

在 Java 中,可以使用方法引用来简化代码。在上面的例子中,我们可以使用方法引用来实现过滤功能。

javaList filteredStudents = students.stream()
 .filter(Student::isAdult)
 .toList();


在这个例子中,我们定义一个静态方法 `isAdult()` 来指定过滤条件,然后使用方法引用 `Student::isAdult` 来调用该方法。

**总结**

在本文中,我们讨论了 `Stream` 的过滤功能。我们学习了如何使用 `filter()` 方法、Lambda 表达式和方法引用来实现过滤功能。通过这些例子,我们可以看到 `Stream` 提供了一种高效的方式来处理数据集合。

**参考**

* Java8 API 文档: />* Stream API 文档:

相关标签:python开发语言
其他信息

其他资源

Top