List<String> list = stringList.stream().filter(e->e.startsWith(spec+style)).collect(Collectors.toList());进行非空判断
时间: 2024-03-06 20:49:32 浏览: 100
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
当使用 `List` 的 `stream` 方法进行过滤操作时,可能会出现结果为 `null` 的情况。为了避免这种情况,可以在 `collect` 方法后添加一个 `Optional` 对象来进行非空判断。
下面是一个示例代码:
```java
List<String> list = stringList.stream()
.filter(e -> e != null && e.startsWith(spec + style))
.collect(Collectors.collectingAndThen(Collectors.toList(), optionalList -> optionalList.isEmpty() ? null : optionalList));
```
在这个示例中,首先使用 `filter` 方法进行过滤操作,同时添加了非空判断。然后使用 `collect` 方法将过滤后的结果转换为 `List` 对象。在 `collect` 方法后,使用 `collectingAndThen` 方法将结果包装在一个 `Optional` 对象中,并进行了非空判断。如果结果为空,则返回 `null`,否则返回过滤后的结果。
这样就可以避免出现结果为 `null` 的情况。需要注意的是,使用 `Optional` 对象进行非空判断时,需要进行额外的处理,以确保代码的正确性。
阅读全文