java中stream流filter过滤后为null不做处理,不为空则继续处理的代码案例
时间: 2024-02-25 21:57:25 浏览: 381
在Java中,`null`和空字符串是两个不同的概念。如果你想要在Stream流中过滤掉`null`值,可以使用`Objects::nonNull`方法来判断元素是否为`null`。
以下是一个示例代码,演示如何使用Java Stream流进行过滤处理:
```
List<String> list = Arrays.asList("apple", "banana", null, "orange", null);
list.stream()
.filter(Objects::nonNull) // 过滤掉null元素
.map(str -> str.toUpperCase()) // 将剩余字符串转换为大写形式
.forEach(System.out::println); // 输出处理结果
```
在上述代码中,我们首先使用`Arrays.asList`方法创建了一个包含多个字符串的列表,其中包括`null`值。接着,我们使用`stream`方法将该列表转换为一个流对象。通过`filter`方法,我们可以过滤掉`null`值,即只处理非`null`值。在这里,我们使用`Objects::nonNull`方法来判断元素是否为`null`。
在过滤掉`null`值后,我们使用`map`方法将剩余字符串转换为大写形式。最后,我们通过`forEach`方法将处理结果输出到控制台上。
需要注意的是,如果列表中所有的元素都是`null`,那么经过`filter`过滤后,结果流将为空流。在这种情况下,`map`方法和`forEach`方法都不会执行任何操作。
阅读全文