stream() .filter 示例
时间: 2023-02-26 16:53:17 浏览: 49
Java 8 提供了 stream API,它可以方便地对集合数据进行处理。其中,filter 方法用于过滤流中的元素,通过一个谓词(Predicate)函数来实现。
下面是一个示例:
```
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 过滤出所有偶数
List<Integer> evenNumbers = numbers.stream()
.filter(i -> i % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers);
// 输出 [2, 4, 6, 8, 10]
```
在这个示例中,我们创建了一个 `List` 对象 `numbers`,包含了 10 个整数。接着,我们使用 `stream()` 方法对该列表进行流处理,使用 `filter` 方法对所有的偶数进行过滤,最后使用 `collect` 方法将结果收集到一个新的列表中。
相关问题
.stream.filter
引用\[1\]中提到,filter()是Stream的一个中间操作,用于返回一个经过过滤后的Stream实例,该实例包含满足条件的元素。在Java 8中,我们可以使用stream.filter()来过滤List、Array或Map中的元素。引用\[2\]中给出了一个使用stream.filter()的示例代码,其中使用了lambda表达式来过滤出指定条件的元素,并使用findAny().orElse(null)来返回找到的对象。另外,filter()还可以与map()一起使用,将流转化为其他类型的数据。引用\[3\]中给出了filter()方法的源码,说明了它是一个中间操作,接受一个Predicate参数,用于判断每个元素是否应该被包含在过滤后的Stream中。所以,.stream.filter()是指使用stream对象的filter()方法来进行过滤操作。
#### 引用[.reference_title]
- *1* *2* [Stream filter()过滤有效数据](https://blog.csdn.net/xuemengrui12/article/details/120361388)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [stream().filter匹配过滤总结](https://blog.csdn.net/zhan107876/article/details/117329626)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
stream.filter 过滤集合
stream.filter 是 Java 8 中 Stream API 提供的一个方法,用于过滤集合中的元素。它接受一个 Predicate<T> 参数,该参数是一个函数式接口,用于定义过滤的条件。Predicate<T> 接口中有一个抽象方法 test(T t),用于判断给定的元素是否满足过滤条件。
下面是一个示例代码,展示如何使用 stream.filter 进行集合过滤:
```java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FilterExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 使用 stream.filter 过滤偶数
List<Integer> evenNumbers = numbers.stream()
.filter(number -> number % 2 == 0)
.collect(Collectors.toList());
System.out.println(evenNumbers); // 输出 [2, 4, 6, 8, 10]
}
}
```
在上面的示例中,我们创建了一个包含数字 1 到 10 的列表 numbers。然后使用 stream.filter 方法,传入一个 Lambda 表达式 number -> number % 2 == 0,该表达式判断元素是否为偶数。最后使用 collect(Collectors.toList()) 方法将过滤后的结果收集到一个新的列表 evenNumbers 中,并输出结果。
通过这种方式,我们可以方便地使用 stream.filter 方法来对集合进行过滤操作。