当前位置: 首页 > 面试题库 >

避免在Stream中出现NoSuchElementException

欧阳斌
2023-03-14
问题内容

我有以下内容Stream

Stream<T> stream = stream();

T result = stream.filter(t -> {
    double x = getX(t);
    double y = getY(t);
    return (x == tx && y == ty);
}).findFirst().get();

return result;

但是,并非总是有一个结果会给我以下错误:

NoSuchElementException:没有值

那么,null如果没有值,我该如何返回?


问题答案:

您可以使用Optional.orElse,它比检查要简单得多isPresent

T result = stream.filter(t -> {
    double x = getX(t);
    double y = getY(t);
    return (x == tx && y == ty);
}).findFirst().orElse(null);

return result;


 类似资料:
  • 问题内容: 我设计了一个简单的函数来返回数学函数,该函数可用于拟合实验数据。这些功能看起来很像以下内容: 不幸的是,我在RunTimeWarnings中遇到了麻烦: 由于值太大或太小。但我无法自行解决此问题。有什么办法可以重新定义我的功能,使其在没有警告的情况下通过? 问题答案: 使用以控制在这种情况下做什么numpy的:http://docs.scipy.org/doc/numpy/refere

  • 问题内容: 我想用SQL编写脚本,该脚本会将这2个表(A,B)复制到其他2个表(C,D),并具有与A,B相同的结构。 重要提示 : 表C,d是 不是 必要的空 多个进程可以同时调用脚本 表A具有表B的外键(fk_a_b) 假设将表B复制到D之后,这就是我得到的 现在,当我将表A复制到CI时,需要知道,ID = 21现在映射到ID = 51,ID = 32映射到ID = 52。最后,表C将为: 由于

  • 问题内容: 建议在HTML页面中使用表格(现在已经有了CSS)? 表格有什么用途?表具有哪些CSS所没有的功能? 问题答案: 一点都不。但是将表格用于表格数据。只是不要将它们用于一般布局。 但是,如果您显示表格数据(例如结果或什至是表格),请继续使用表格!

  • 问题内容: 我使用Java在Selenium WebDriver中编写了一些测试用例,并在网格(集线器和多个节点)上执行它们。我注意到有一些测试案例由于导致失败。避免并确保始终找到该元素的最佳且可靠的方法是什么? 问题答案: 您永远无法确定会找到该元素,实际上这是功能测试的目的- 告诉您页面上是否有任何更改。但有一两件事肯定是有帮助是添加等待这往往导致元素像

  • 我有允许我管理几个youtube频道的登录凭证。还有一个内容所有者账户,通过YT的CMS控制这些频道。 我正在尝试将视频上传到特定频道。根据我的理解,这需要OnBehalfContentowner和OnBehalf ContentownerChannel标志。我从URL的'o'参数中获得了内容所有者ID(如中所示)https://www.youtube.com/my_channels?o=[id]