Java8 List Stream 过滤
在Java8中,List是常用的集合类型之一,它可以存储一组有序的对象。而Stream是Java8新增的特性,它提供了一种便捷的处理集合数据的方式。在这篇文章中,我们将学习如何使用Java8的List Stream来进行过滤操作。
什么是List Stream?
Stream是Java8中引入的一种流式处理集合数据的方式。它提供了丰富的操作方法,可以极大地简化代码的编写。List Stream是Stream的一种特殊形式,它可以直接从List集合中创建。
在使用List Stream之前,我们需要先了解一些基本的概念。
流的创建
要创建一个List Stream,我们可以使用List接口的stream()
方法,将List集合转换成一个流:
List<String> list = Arrays.asList("apple", "banana", "cherry");
Stream<String> stream = list.stream();
中间操作和终端操作
Stream提供了两种类型的操作:中间操作和终端操作。
中间操作是指对流进行转换和处理的操作,它们返回一个新的Stream对象。常用的中间操作包括filter()
、map()
、distinct()
等。
终端操作是指对流进行最终处理的操作,它们返回一个非流的结果,例如集合、数组或者某个值。常用的终端操作包括collect()
、forEach()
、count()
等。
过滤操作示例
假设我们有一个存储员工信息的List集合,每个员工包含姓名和年龄两个属性,我们希望从中筛选出年龄大于30岁的员工。以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class Employee {
private String name;
private int age;
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee("John", 28));
employees.add(new Employee("Alice", 32));
employees.add(new Employee("Bob", 40));
employees.add(new Employee("David", 25));
List<Employee> filteredEmployees = employees.stream()
.filter(e -> e.getAge() > 30)
.collect(Collectors.toList());
System.out.println("Filtered employees: ");
for (Employee employee : filteredEmployees) {
System.out.println("Name: " + employee.getName() + ", Age: " + employee.getAge());
}
}
}
在上面的代码中,我们首先创建了一个存储员工信息的List集合,并添加了一些员工对象。然后,我们使用List的stream()
方法将List转换为一个Stream对象。
接下来,我们使用filter()
方法对流进行过滤,只保留年龄大于30岁的员工。最后,我们使用collect()
方法将过滤后的员工信息收集到一个新的List集合中。
最后,我们使用forEach()
方法遍历新的List集合,输出过滤后的员工信息。
总结
通过本文的介绍,我们学习了如何使用Java8的List Stream进行过滤操作。List Stream提供了丰富的操作方法,可以极大地简化集合数据的处理。我们可以根据具体的需求,使用不同的中间操作和终端操作来实现各种功能。
希望本文能对你理解和使用Java8的List Stream有所帮助!
## 旅行图
```mermaid
journey
title Java8 List Stream 过滤
section 创建List Stream
section 中间操作和终端操作
section 过滤操作示例
section 总结
参考链接
- [Java Stream API](
- [Java 8 Stream Tutorial](