stream().map去空值
时间: 2024-08-29 07:02:09 浏览: 126
Stream管道流Map操作.pdf
Stream API在Java中是一个强大的工具,用于处理集合数据。`stream().map()`方法主要用于对流中的每个元素应用某个函数并创建一个新的流。当流中可能存在null值时,我们可以使用`Optional<T>`来处理这种情况。
如果你想过滤掉空值(null),可以先将元素转化为`Optional`,然后再进行映射操作。这通常通过`map(Objects::requireNonNull)`或`filter(Objects::nonNull)`这两个方法结合实现。例如:
```java
List<String> list = Arrays.asList(null, "a", null, "b");
List<String> nonNullStrings = list.stream()
.map(Optional::ofNullable) // 将null转换为Optional.empty()
.filter(Optional::isPresent) // 筛选出非空的Optional
.map(Optional::get) // 取出实际的非null值
.collect(Collectors.toList());
```
在这个例子中,原始列表`list`中有两个null值,经过上述处理后,`nonNullStrings`列表只包含非空字符串"a"和"b"。
阅读全文