You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Java Stream中移除null值?

移除Java Stream中的null值

在Java中移除Stream里的null值,最直接高效的方式是借助filter操作结合非空判断逻辑,以下是两种常用实现方式:

方法一:使用Objects::nonNull方法引用

这是推荐的规范写法,Objects.nonNull()是Java 8+提供的工具方法,安全且简洁地完成非空校验:

import java.util.Objects;
import java.util.stream.Stream;

public class StreamNonNullExample {
    public static void main(String[] args) {
        // 包含null的原始Stream
        Stream<String> originalStream = Stream.of("apple", null, "banana", null, "cherry");
        // 过滤null后的Stream
        Stream<String> nonNullStream = originalStream.filter(Objects::nonNull);
        
        // 执行终端操作验证结果
        nonNullStream.forEach(System.out::println); // 输出 apple、banana、cherry
    }
}

方法二:使用Lambda表达式显式判断

如果你偏好更直观的逻辑写法,也可以直接用lambda表达式完成非空判断,效果和上面完全一致:

Stream<String> nonNullStream = originalStream.filter(e -> e != null);

需要注意:Stream操作是惰性执行的,只有当调用forEach、collect这类终端操作时,过滤逻辑才会实际触发执行。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 05:54:40