list.stream().filter.判空
时间: 2024-07-16 07:01:32 浏览: 68
List.stream() 是Java 8引入的流(Stream) API的一个常用方法,用于将列表转换为流。filter() 方法则是流操作中的一部分,它可以根据提供的条件过滤掉流中的元素。当调用 `list.stream().filter(Predicate predicate)` 时,`Predicate` 是一个谓词接口,你可以传入一个自定义的条件函数(通常是一个 lambda 表达式),这个函数会应用于列表中的每个元素,如果该元素满足条件(lambda表达式的返回值为true),则会被保留在过滤后的流中。
例如,假设你有一个包含整数的列表,你想找出所有的偶数,可以这样做:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<List<Integer>> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
```
在这个例子中,`filter(n -> n % 2 == 0)` 就是在判断每个数字是否为偶数,如果是,则通过 filter() 保留下来。注意,filter() 返回的是一个新的流,而不是原列表,如果你想得到一个列表结果,需要调用 collect() 或者其他方法进一步处理。
阅读全文