Java 8 – 从一个 Stream中过滤null值

2023-10-27

 

复习一个Stream 包含 null 数据的例子.

Java8Examples.java

 
  1. package com.mkyong.java8;

  2.  
  3. import java.util.List;

  4. import java.util.stream.Collectors;

  5. import java.util.stream.Stream;

  6.  
  7. public class Java8Examples {

  8.  
  9. public static void main(String[] args) {

  10.  
  11. Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php");

  12.  
  13. List<String> result = language.collect(Collectors.toList());

  14.  
  15. result.forEach(System.out::println);

  16.  
  17. }

  18. }

output

java
python
node
null   // <--- NULL
ruby
null   // <--- NULL
php

Solution(解决)

为了解决上面的问题,我们使用: Stream.filter(x -> x!=null)

Java8Examples.java

 
  1. package com.mkyong.java8;

  2.  
  3. import java.util.List;

  4. import java.util.stream.Collectors;

  5. import java.util.stream.Stream;

  6.  
  7. public class Java8Examples {

  8.  
  9. public static void main(String[] args) {

  10.  
  11. Stream<String> language = Stream.of("java", "python", "node", null, "ruby", null, "php");

  12.  
  13. //List<String> result = language.collect(Collectors.toList());

  14.  
  15. List<String> result = language.filter(x -> x!=null).collect(Collectors.toList());

  16.  
  17. result.forEach(System.out::println);

  18.  
  19.  
  20. }

  21. }

output

java
python
node
ruby
php

另外,过滤器还可以用: Objects::nonNull

 
  1. import java.util.List;

  2.  
  3. List<String> result = language.filter(Objects::nonNull).collect(Collectors.toList());

References

  1. Objects::nonNull JavaDoc
  2. Java 8 Streams filter examples
  3. Java 8 Collectors JavaDoc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 8 – 从一个 Stream中过滤null值 的相关文章

  • 按下按钮并在java中的新窗口中打开文件

    我创建了一个 JFrame 并放置了一个文本字段和按钮 在文本字段中我放置了从文本文件读取的名称 我知道我想单击按钮并打开一个已知窗口 我想在其中放置名称 其他信息来自同一个文件 这是我的代码 这是我的主框架 package Fronten
  • 我是否需要安装 SQLite 才能使 SQLiteJDBC 正常工作?

    我想我只是没有 明白 如果我的计算机上尚未安装 SQLite 并且我想编写一个使用嵌入式数据库的 Java 应用程序 并且我将 SQLiteJDBC JAR 下载 导入到我的项目中 那么这就是我所需要的吗 或者 我是否需要先安装 SQLit
  • 有没有创建 Cron 表达式的 Java 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个 Java 代码来根据用户输入创建一个 cron 表达式 用户输入是时间 频率和执行次数 只需从评论中添加 自己创建 即可
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • 什么是抽象类? [复制]

    这个问题在这里已经有答案了 当我了解抽象类时 我说 WT H 问题 创建一个无法实例化的类有什么意义呢 为什么有人想要这样的课程 什么情况下需要抽象类 如果你明白我的意思 最常见的是用作基类或接口 某些语言有单独的interface构建 有
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • Android中如何使用JNI获取设备ID?

    我想从 c 获取 IMEIJNI 我使用下面的代码 但是遇到了未能获取的错误cls 它总是返回NULL 我检查了环境和上下文 它们都没有问题 为什么我不能得到Context班级 我在网上搜索了一下 有人说我们应该使用java lang Ob
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • Android 无法解析日期异常

    当尝试解析发送到我的 Android 客户端的日期字符串时 我得到一个无法解析的日期 这是例外 java text ParseException 无法解析的日期 2018 09 18T00 00 00Z 位于 偏移量 19 在 java t
  • 如何在 ant 中为 junit 测试设置 file.encoding?

    我还没有完全完成file encoding 和 ant https stackoverflow com questions 1339352 how do i set dfile encoding within ants build xml
  • 如何在.NET中使用java.util.zip.Deflater解压缩放气流?

    之后我有一个转储java util zip Deflater 可以确认它是有效的 因为 Java 的Inflater打开它很好 并且需要在 NET中打开它 byte content ReadSample sampleName var inp
  • 提高 PostgreSQL 1 亿数据左连接查询性能

    我在用Postgresql 9 2 version Windows 7 64 bit RAM 6GB 这是一个Java企业项目 我必须在我的页面中显示订单相关信息 有三个表通过左连接连接在一起 Tables TV HD 389772 行 T
  • 不可变的最终变量应该始终是静态的吗? [复制]

    这个问题在这里已经有答案了 在java中 如果一个变量是不可变的并且是final的 那么它应该是一个静态类变量吗 我问这个问题是因为每次类的实例使用它时创建一个新对象似乎很浪费 因为无论如何它总是相同的 Example 每次调用方法时都会创
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • Hibernate 本机查询 - char(3) 列

    我在 Oracle 中有一个表 其中列 SC CUR CODE 是 CHAR 3 当我做 Query q2 em createNativeQuery select sc cur code sc amount from sector cost
  • java 中的蓝牙 (J2SE)

    我是蓝牙新手 这就是我想做的事情 我想获取连接到我的电脑上的蓝牙的设备信息并将该信息写入文件中 我应该使用哪个 api 以及如何实现 我遇到了 bluecove 但经过几次搜索 我发现 bluecove 不能在 64 位电脑上运行 我现在应
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack
  • Java 11 - 将 Spring @PostConstruct 替换为 afterPropertiesSet 或使用 initMethod

    我正在使用 spring 应用程序 有时会使用 PostConstruct用于代码和测试中的设置 看来注释将被排除在外Java 11 https www baeldung com spring postconstruct predestro

随机推荐

  • unity中fixedUpdate和Update的区别

    下面这段代码演示游戏暂停 using UnityEngine using System Collections public class GamePauseTest MonoBehaviour public float moveSpeed
  • 【框架篇】Gin框架源码解读【更新中】

    1 中间件 中间件的实现 依照设计模式中责任链模式 依次调用当前路由 注册的中间件 gin go HandlerFunc defines the handler used by gin middleware as return value
  • Perl 批量添加Copyright版权信息

    对所有输入文件 如果没有版权信息则加上版权信息 否则什么都不做 并对原文件以 bak结尾备份 开始我使用如下程序 尝试前千万先备份输入的文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2
  • 财报解读:创维集团2022年业绩表现凸显韧性,新能源业务将大有作为

    2023年3月23日 创维集团披露了2022年财报 总营收534 91亿元 同比增长5 03 归属母公司净利润8 27亿元 同比下降49 39 在电视行业正处于阵痛期的情况下 这份业绩展现了公司的发展韧性 而从财报也可以看出 创维感受到了电
  • 录音如何转文字?这几款音频转文字工具可以给到你帮助

    记录文本速度总是赶不上倾听语音速度 咋整 别急 这有一招献给你 我们可以借助音频转文字工具 快速将语音信息转写 轻松解放双手 音频转文字工具不仅转写语音的速度快 而且转写效果杠杠的 值得一试哦 话不多说 音频转文字免费教程双手奉上 有需要的
  • DS18B20温度传感器使用介绍

    DS18B20温度传感器简介 DS18B20是一种数字温度传感器 应用非常广泛 它输出的是数字信号 同时具有体积小 硬件资源耗费少 抗干扰能力强 精度高等特点 DS18B20温度传感器特点 1 采用单线接口方式 DS18B20温度传感器仅需
  • 实现按钮悬停动画

    知识点与技巧 伪元素 使用伪元素来作为按钮悬停效果动画展示的元素 z index 的使用技巧 使用z index属性来控制按钮和伪元素的层次关系 transform transition 复习 使用transform transition两
  • 舵机的使用方法和一些注意事项

    舵机是我们经常使用的一个工具 它可以说是直流电机的进化版本 只需要一根信号线就能方便的控制舵机旋转固定的角度 下面我们就来看一看舵机的使用方法和一些使用过程中的注意事项 一般的舵机总共有三条线 电源线 供电线 和信号线 其中红色的是电源正极
  • 在idea隐藏掉不想要看到的文件(设置隐藏文件)

    一 为什么隐藏 因为想 通常 我们会在项目中 看到很多不常用或者根本不操作的文件 那么 我们就会选择 隐藏 掉 注 但是需要心中有数 有些文件隐藏后 可能会影响开发 谨慎 二 如何设置 1 找到File gt Setting gt File
  • vite和esbuild/roolup的优缺点

    esbuild 优点 基于go语言 go是纯机器码 不使用 AST 优化了构建流程 多线程并行 缺点 esbuild 没有提供 AST 的操作能力 所以一些通过 AST 处理代码的 babel plugin 没有很好的方法过渡到 esbui
  • 第十天Python之面向对象(OOP)基本概念

    面向对象编程 Object Oriented Programming 简写 OOP 目标 了解 面向对象基本概念 一 面向对象基本概念 我们之前学习的编程方式就是 面向过程 的 面向过程 和 面向对象 是两种不同的 编程方式 对比 面向过程
  • Linux学习笔记--rm命令(删除文件或目录)

    rm 英文名remove 删除的意思 1 命令格式 rm 选项 文件或目录 2 常用选项 rm f 强行删除 忽略不存在的文件 不提示确认 f为force的意思 rm i 进行交互式删除 即删除时会提示确认 i为interactive的意思
  • CentOS7.x系统中使用Docker时,在存储方面需要注意的问题

    简述 1 Docker 1 12 6 v17 03文档中CentOS7系统下安装时 明确说明 用于生产时 必须使用devicemapper驱动的direct lvm模式 需要我们提前准备好块设备 以提供更好的稳定性和性能 默认使用devic
  • Java阿里云短信发送工具类

    短信服务API介绍 阿里云短信发送 调用SendSms发送短信 短信服务 阿里云帮助中心
  • 基于Hutools图片上传下载

    1 pom依赖
  • Python视觉处理(二)线检测

    python线检测使用的时cv HoughLinesP 函数 它有两个参数 minLineLength 线的最短长度 比这个线短的都会被忽略 MaxLineGap 两条线之间的最大间隔 如果小于此值 这两条线就会被看成一条线 这个函数的返回
  • 物理层(1.物理层基本概念&2.数据通信基础知识)

    物理层的作用就是在连接计算机的传输介质上传输数据比特流 并且尽可能屏蔽掉传输媒体和通信手段的差异 一 物理层的基本概念 1 机械特性 指明接口所用接线器的形状和尺寸 引线数目和排列 固定和锁定装置等 2 电气特性 指明在接口电缆的各条线上出
  • 五大常用算法之三:动态规划

    动态规划 动态规划 Dynamic Programming 简称DP 需要分解出问题的子结构以及通过子结构重新构造最优解 动态规划不像回溯法 有套路可以套用 动态规划需要大量练习 才能掌握规律 一般思路 1 判断问题的子结构 有最优子结构时
  • vit网络模型简介

    目录 一 前言 1 1 Transformer在视觉领域上使用的难点 1 2 输入序列长度的改进 1 3 VIT对输入的改进 二 Vision Transformer模型 2 1 Embedding层 2 2 Transformer Enc
  • Java 8 – 从一个 Stream中过滤null值

    复习一个Stream 包含 null 数据的例子 Java8Examples java package com mkyong java8 import java util List import java util stream Colle