有没有办法检查Java中的流是否是有限的? [关闭]

2023-12-23

我知道有infiniteJava 中的流。

有没有办法检查流是否是有限的?

像这样的方法isStreamFinite(Stream<T> stream)?

@Test
public void testStreamFinity() {
    assertFalse(isStreamFinite(generateLong()));
}

private <T> boolean isStreamFinite(Stream<T> stream) {
    if (stream.count() < Long.MAX_VALUE) {
        return true;
    }
    return false;
}

private Stream<Long> generateLong() {
    return LongStream.generate(() -> new Random().nextLong()).boxed();
}

的建设Stream会留下一些标记/轨迹我们可以用它来追溯检查吗?

The 检查方法能否始终按预期可靠地工作?

Update

当我试图通过检测来解决问题时,我错了isFinite一条流的。正如所提到的答案所示,它似乎并不稳定/可靠。我将在另一个方面重构我的解决方案。谢谢你的帮助~


没有可靠的方法可以做到这一点。即使使用estimateSize,记录如下:

...或者如果无限、未知或计算成本太高则返回 Long.MAX_VALUE。

所以仅仅依靠这样一个事实Long.MAX_VALUE会告诉你这个流是否是无限的——这是完全错误的。

另一个建议说要使用SIZED,这又是错误的:

IntStream.generate(() -> 1).limit(5)

You know这是一个SIZED流 - 实施不会并且将会not报告大小的标志。

底线:你不能以可靠的方式。从理论上讲,这在某些情况下是可能的,例如当您just use generate在不限制或短路流的情况下,实现可以注册一个标志,例如IS_INFINITE或其他什么,但这个 IMO 可能对 99% 的情况都是无用的。

你也可以在这里反向思考,当你想确定地判断这个流是否是有限的时怎么样?在这种情况下,getExactSizeIfKnown()会告诉你的。

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

有没有办法检查Java中的流是否是有限的? [关闭] 的相关文章

  • 清理码头 - 删除“不必要”的东西

    我习惯用Jetty http jetty codehaus org jetty 作为我的网络容器 我对我做了什么安装步骤得到原始的焦油球并且清理一些目录和文件从中 我在这里想提出的是 您通常从 Jetty 中删除什么以在生产 登台环境中使用
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett
  • JAXB - 列表<可序列化>?

    我使用 xjc 制作了一些课程 public class MyType XmlElementRefs XmlElementRef name MyInnerType type JAXBElement class required false
  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • Powerpoint VBA 撤消

    我有 VBA 代码 可以处理 PowerPoint 文件中的许多幻灯片 部分代码临时调整幻灯片大小 以便我可以以不同的纵横比导出图像 我无法再次调整它们的大小 因为 PowerPoint 永远不会将它们的内容完全恢复到调整大小之前的样子 所
  • PHP:preg_match - “分隔符不能是字母数字或反斜杠”[重复]

    这个问题在这里已经有答案了 有谁知道这个正则表达式有什么问题吗 它在 RegexPal 和 RegExr 等网站上运行良好 但在 PHP 中它给我这个警告并且没有结果 Warning preg match function preg mat
  • 使用 constexpr-if 时出错:在 'constexpr' 之前预期有 '('

    我正在尝试使用 if constexpr 来检查某些内容 但遇到类似错误 constexpr 之前应有 前面没有 if 的 else 到目前为止我检查我的代码没有任何问题 我的编译标志是 g std c 17 main cpp includ
  • mac os x 下进程使用的内存

    给定PID 如何获取进程当前使用的内存 具体来说 我正在寻找 进程使用的私有物理内存 RAM 进程使用的交换空间 但我对映射文件和共享内存不感兴趣 简而言之 我想确定通过终止 PID 将释放多少内存 RAM 和交换 这有用吗 您可以使用ps
  • Django 中的 2 个表单、1 个视图、2 个 SQL 表

    我正在努力了解如何将两个 django 表单中的数据提交到两个单独的数据库表中相同的观点 我只想要一个提交按钮 尽管this https stackoverflow com questions 1395807 proper way to h
  • 一个按钮是否可以有 2 种不同的背景颜色(以及 css 按钮)

    我想要实现的就是这样的事情 你好 hi 位于两种颜色的中间 我让它适用于一种颜色和下面的另一种颜色 但希望颜色在文本中间分开 如果没有人能想出使用 css 的解决方案 我将使用按钮图像 尽量避免使用图像 编辑 当然CSS结果必须跨浏览器 即
  • 最后一个分叉的孩子不会死

    我的主进程分叉了两次 从而创建了两个子进程 这两个孩子是这样相互沟通的 ls more 现在的问题是 第二个孩子永远不会死 这是为什么 管道中的最后一个孩子什么时候真正死亡 删除一个wait 调用显示了预期结果ls more但给出了一些进一
  • 如何使用 SevenZipSharp 创建压缩的 SFX 文件?

    我将了解如何使用 SevenZipSharp 库创建 SFX 首先 我需要说我找不到任何属性来设置压缩级别 等等 当我尝试制作文件的 SFX 时 出现以下错误 Object reference not set to an instance
  • WinForms 中的 WPF 控件 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 NET 世界的新手 对 winform 的经验很少 我想知道是否可以将WPF与Winforms混
  • JavaScript 中 FileReader#readEntries 可以读取的目录最大文件数

    我正在创建一个 Chrome 应用程序 我必须读取目录的文件并且我正在使用目录入口API https developer mozilla org en US docs Web API DirectoryEntry and 目录读取器API
  • 如何创建一个程序来列出 Mac 中的所有 USB 设备?

    我对 Mac OS X 操作系统的接触有限 现在我开始使用 Xcode 并正在研究 I O 套件 我需要在命令行工具下在 Xcode 中创建一个程序 以便列出 Mac 系统中连接的所有 USB 设备 请有过这方面经验的人帮帮我 如果有人可以
  • Rails form_for collection_select 忽略 select_tag 接受的远程 ajax 调用

    在让我的表单助手工作之前 我使用以下内容作为我的选择下拉列表 这非常适合调用我的 filter by city js erb 并更新一些其他值 使用
  • Python 3.7:将代理应用于 pip 安装的所有部分,无法维护代理变量

    我有以下问题 我正在使用命令 pip install pyinstaller proxy http webdefence global blackspider com 80 trusted host pypi python org 我遇到的
  • 通过正则表达式进行不区分大小写的有序单词搜索

    我刚开始使用 Perl 中的正则表达式 在尝试了各种在线教程之后 我想要编写一个正则表达式来匹配顺序指定的不区分大小写的单词匹配 我正在尝试确定字符串 A 是否由字符串 B 的单词或单词序列组成 并且我想不区分大小写地执行此操作 例如 如果
  • React 无状态组件 - 性能和 PureRender

    大家都说用stateless组件将提高应用程序性能 然而 我注意到在错误的地方使用无状态组件真的会reduce应用性能 发生这种情况是因为无状态组件总是渲染 即使属性没有改变 如果是stateful我们可以使用的组件PureComponen
  • 如何居中和左对齐图像?

    我正在创建一个图像库 希望图像的容器完全居中在页面上 但图像保持对齐 这是我想要的输出 但是 当我尝试做一个text align center在容器上 id gallery 我得到的图像显示如下 我尝试效仿之前的堆栈溢出问题 CSS 居中块
  • 从 Gradle 开始 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不知道像 Ant Maven 或
  • open()、_open() 和 fopen() 在 MSVC 编译器方面的区别?

    我发现这三个函数都与打开文件有关 open https msdn microsoft com en us library ms235491 v vs 120 aspx 此 POSIX 函数已弃用 使用符合 ISO C 标准的 open 反而
  • symfony2 和doctrine2 较短的实体名称

    谁应该摆脱在 DQL 查询中使用命名空间 我想为我的包中的所有学说请求分配默认名称空间 在查询生成器中使用默认命名空间也是完美的 我想拥有 dql select i from MyCompanyMySuperPuperBundle Issu
  • 有没有办法检查Java中的流是否是有限的? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我知道有infiniteJava 中的流 有没有办法检查流是否是有限的 像这样的方法isStreamFinite Stream