2025年02月17日 Java Stream filter详解 极客笔记
在Java 8中引入了Stream API,可以让我们更方便地进行集合的数据处理和操作。其中,Stream.filter方法可以用来过滤集合中的元素,只保留满足特定条件的元素。本文将详细介绍Java Stream.filter的用法和示例,并展示其运行结果。
Stream是一种用来处理集合数据的工具,它可以让我们更加方便地进行各种数据处理操作,比如筛选、映射、排序等。在Stream中,filter方法是用来过滤集合中元素的,只保留满足条件的元素。
filter方法的语法如下:
Stream<T> filter(Predicate<? super T> predicate)
其中,Predicate是一个函数式接口,用来指定过滤条件。filter方法会对集合中的每个元素应用Predicate中的条件,只有满足条件的元素才会保留下来。
下面我们通过一个示例来演示如何使用Stream.filter方法进行集合元素的筛选。假设有一个包含整数的List集合,我们需要筛选出其中所有大于10的元素。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class StreamFilterExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(5, 10, 15, 20, 25);
// 使用Stream.filter筛选大于10的元素
Stream<Integer> filteredNumbers = numbers.stream()
.filter(num -> num > 10);
// 将筛选结果收集到新的List中
List<Integer> result = filteredNumbers.collect(Collectors.toList());
// 输出筛选结果
result.forEach(System.out::println);
}
}
在上面的代码中,我们首先创建了一个整数List集合numbers,然后使用stream()方法将其转换为Stream对象。接着调用filter方法,传入一个Lambda表达式num -> num > 10作为筛选条件,表示只保留大于10的元素。最后使用collect(Collectors.toList())方法将筛选结果收集到一个新的List集合中,再通过forEach方法逐个输出筛选结果。
上述示例代码的运行结果如下:
15
20
25
可以看到,筛选之后只保留了大于10的元素,即15、20和25。
Java Stream.filter方法可以方便地对集合元素进行筛选操作,只保留满足指定条件的元素。通过合理地运用filter方法,可以更加高效地处理集合数据。
本文链接:http://so.lmcjl.com/news/23358/