如何将单元素列表转换为java 8可选

2024-01-04

如何很好地将包含一个或零个元素的列表转换为可选?

丑陋的代码:

List<Integer> integers = new ArrayList<>();

Optional<Integer> optional = integers.size() == 0 ?
        Optional.empty() :
        Optional.of(integers.get(0));

您可以使用Stream#findFirst() https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#findFirst--方法,其中:

返回一个描述此流的第一个元素的可选值,如果流为空,则返回一个空的可选值。

List<Integer> list = ...
Optional<Integer> optional = list.stream().findFirst();

或者,您也可以使用以下方法获得同样的成功Stream#findAny() https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#findAny-- method.

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

如何将单元素列表转换为java 8可选 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s

随机推荐

  • 带 ID 的脚本标签?

    大多数现代浏览器是否支持脚本标签中的 id 例如 我问的原因是 Eclipse 显示一条警告 指出 未定义的属性名称 但当我使用 jQuery 选择器获取脚本元素的其他属性时 它在 Google Chrome 中工作正常 W3Schools
  • 对于具有compileOnly依赖项的单元测试,如何避免在运行时重新声明可用性的依赖项?

    我目前正在使用 Gradle 构建一个项目 它依赖于 我在编译时需要的第三方组件 但将在运行时提供 在 Maven 中我会将这种依赖声明为provided 在 Gradle 中我将其声明如下 compileOnly group org ap
  • 在迭代到循环的下一次迭代之前完成 FOR 循环内的所有函数

    假设我有一个类似的功能 var bigArray 1 2 3 4 5 n for var i 0 i
  • MKMapView MKPointAnnotation 点击​​事件

    我有一个注释列表 MKPointAnnotation 我有一个用于整个视图的 UIViewController MKMapView 实现控制器 我认为它对于检测用户与地图的交互很有用 我自己的 MKPointAnnotation 实现 子类
  • 具有不同列名的 pandas 数据帧上的 pd.corrwith

    我想以有效的方式获得 x1 和 y 中三列中每一列之间的皮尔逊 r 看来 pd corrwith 只能计算具有完全相同列标签的列 例如x 和 y 这似乎有点不切实际 因为我认为计算不同变量之间的相关性将是一个常见问题 In 1 import
  • 在Java中清除控制台屏幕[重复]

    这个问题在这里已经有答案了 是否有任何选项可以像 C 中的 clrscr 一样清除 Java 中的控制台屏幕 作为肮脏的黑客 我喜欢 msparer 的解决方案 我见过的一种更肮脏的方法 我自己永远不会这样做 我发誓 真的 是向控制台写入一
  • jQuery 未加载

    我正在使用 php 当我在谷歌服务器上使用 jquery 1 3 2 min js 时 它会加载并且一切运行正常 但是当我尝试使用我下载到我的服务器上的那个时 Firebug 给了我这个 1 2 3 4 5 h1 Forbidden h1
  • 更快的 numpy 笛卡尔到球坐标转换?

    我有来自 3 轴加速度计 XYZ 的 300 万个数据点数组 我想向包含等效球面坐标 r theta phi 的数组添加 3 列 下面的代码可以工作 但看起来太慢了 我怎样才能做得更好 import numpy as np import m
  • Python 从文件读取到多个列表

    我不认为有人可以指出我正确的方向 我有点想知道如何最好地从文本文件中提取值 然后将它们分解并将它们放回到与相应值相同的位置的列表中 抱歉 如果这还不清楚 也许这会让它更清楚 这是输出文件的代码 while loop with open va
  • 大文件的 Windows fsync (FlushFileBuffers) 性能

    来自有关确保数据位于磁盘上的信息 http winntfs com 2012 11 29 windows write caching part 2 an overview for application developers http wi
  • 如何在 Expect 脚本中访问环境变量?

    我想访问 Expect 脚本内的 PATH 环境变量 我怎样才能做到这一点 我的实际脚本是 usr bin expect set timeout 300 send echo PATH r 它的输出是 can t read PATH no s
  • 未从 cordova apk 加载本机库

    我正在制作一个 cordova 插件 它将是 jar 文件及其两个 so 依赖项的简单包装器 我之前已经在 Android Studio 的普通 Android 应用程序中尝试过 通过将本机库复制到 jniLibs armeabi 文件夹中
  • 插件 'org.apache.maven.plugins:maven-jboss-as-plugin' 不存在或找不到有效版本

    我遇到了 Jboss AS 7 1 1 最终部署的部署错误 如所述无法连接到远程 localhost 9999 连接超时 Jboss 7 1 1 Final https stackoverflow com questions 1575775
  • iOS 10 应用程序终止时推送通知?

    升级到 iOS 10 后 我遇到了有关推送通知的问题 我使用的是 Swift3 在正常情况下 当应用程序打开或应用程序仍在后台时 一切正常 可以按照我的逻辑接收推送通知和更新数据 但是 当应用程序终止时 当应用程序变为活动状态时 我无法处理
  • 您将如何在多个类别之间共享随机值?

    我想创建一个随机 int 值以在多个类中使用 每次我创建这些类的一组新实例时 我都希望将这个新的随机 int 值用于所有这些实例 但随机值应该是相同的 简而言之 我希望创建一个随机索引 并在多个共同生成数据的类中使用该索引 这个随机值是否应
  • apache-spark 缓存()/持久()的内存消耗

    当我尝试缓存 或持久化 MEMORY ONLY SER 我的 RDD 时 我的 Spark 集群挂起 它运行良好 大约 7 分钟即可计算出结果 如果我不使用cache 我有 6 个 c3 xlarge EC2 实例 4 个核心 每个 7 5
  • 使用以下两个命令安装 docker 时有什么区别?

    当谈到在 centos 上安装 Docker 时 我发现了两种不同的方法 第一个是 yum install docker engine 第二个是 yum install docker io 如果我使用第一个安装了 docker 那么我继续使
  • 没有实体框架的 ASP.NET 身份

    是否可以在不使用实体框架的情况下使用新的 ASP NET Identity 而是使用您自己的方法 我有一个 MVC 项目 它使用普通的 ADO NET 进行数据访问 我想实现 ASP NET 身份 但我想继续使用 ADO NET 和存储过程
  • Grunt 多任务在构建时抛出 EISDIR 错误

    我正在尝试设置 grunt 来缩小 src 目录中的一些 js 文件并将它们复制到构建目录 继grunt 任务文档 https github com gruntjs grunt wiki Configuring tasks 我相信下面的配置
  • 如何将单元素列表转换为java 8可选

    如何很好地将包含一个或零个元素的列表转换为可选 丑陋的代码 List