为什么我可以将并行流收集到任意大的数组,但不能收集顺序流?

2023-12-23

从回答这个问题 https://stackoverflow.com/q/49760006/7294647,我遇到了一个奇怪的功能。以下代码按照我的预期工作(现有数组中的前两个值将被覆盖):

Integer[] newArray = Stream.of(7, 8)
                           .parallel()
                           .toArray(i -> new Integer[] {1, 2, 3, 4, 5, 6});

System.out.println(Arrays.toString(newArray));

Output:

[7, 8, 3, 4, 5, 6]

但是,尝试使用顺序流执行此操作会引发IllegalStateException:

Integer[] newArray = Stream.of(7, 8)
                           .toArray(i -> new Integer[] {1, 2, 3, 4, 5, 6});

System.out.println(Arrays.toString(newArray));

Output:

Exception in thread "main" java.lang.IllegalStateException: Begin size 2 is not equal to fixed size 6
    at java.base/java.util.stream.Nodes$FixedNodeBuilder.begin(Nodes.java:1222)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:483)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:550)
    at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
    at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:517)
    at test/test.Test.main(Test.java:30)

我很好奇为什么顺序流不会像并行流那样覆盖数组的元素。我搜索了一下,但无法找到与此相关的文档,但我认为它存在于某个地方。


The generator函数是required https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#toArray-java.util.function.IntFunction-产生“所需类型的新数组和提供的长度” 如果您不遵守规范,则行为是未定义的。

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

为什么我可以将并行流收集到任意大的数组,但不能收集顺序流? 的相关文章

  • 查找数组中多个最大值的索引

    我有一个示例数组 var arr 10 67 100 100 我想找到数组中最大值的索引 该函数仅查找一个索引 function max arr var max arr 0 var maxIndex 0 for var i 1 i lt a
  • Byte[] 和 java.lang.OutOfMemoryError 按位读/写文件

    我正在努力擦除 Android 中的一些可用空间 这是我的代码 private void creatingFileDelete int size int passMode File lastFile new File Environment
  • Android Fabric Crashlytics 崩溃,初始化时未找到资源

    我从 google play 控制台收到了这份报告 看起来 Fabric 在启动时崩溃了 因为某些用户出现了资源未找到的异常 java lang RuntimeException at android app ActivityThread
  • 简单的Java程序插入USB热点后速度慢100倍

    我有以下Java程序 class Main public static void main String args throws java io IOException long start System nanoTime java io
  • 使用 Copy.CopyIntoItems Web 服务将文件上传到 SharePoint 2010 时收到 400 错误请求

    SharePoint 新手 我尝试使用 Java 的 CopyIntoItems Web 服务方法将文档上传到 SharePoint 但不断收到 400 错误请求 我使用 Java 的 wsimport 从 wsdl 文件生成类文件 这是我
  • 如何在 SpringBoot v3.0.0 中使用嵌入式 MongoDB?

    我正在尝试连接嵌入式 mongodb 并使用 MongoDbSpringIntegrationTest 对其进行测试 问题是相同的代码在 2 7 7 中适用于 spring boot 但在 3 0 0 中不适用于 spring boot 问
  • 字符串 a == 字符串 b 的规则 [重复]

    这个问题在这里已经有答案了 我试图了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是什么 例如这个片段 public static void main String hi String s1 lol String s2 lol S
  • 添加数组的总和。显示1个输出

    更新 这个问题的答案如下 感谢在不同线程上进行的 dougtesting 将数组相加 显示总和 https stackoverflow com questions 45724641 add array together display su
  • 相对重力

    我最近开始使用jMonkey引擎 这非常好 但我在尝试实现相对重力时陷入了困境 我想让行星彼此围绕轨道运行 不一定是完美的圆形轨道 取决于速度 所以每个对象都应该影响其他对象 我现在拥有的 关闭全球重力 bulletAppState get
  • java多线程中“私有最终对象”锁定有什么用?

    java多线程中 私有最终对象 锁定有什么用 据我的理解 我认为要使一个类成为线程安全的 我们应该使用内部锁定 将所有方法标记为同步并使用 this 将它们锁定在对象的监视器上 或者我们可以用方法中的私有最终对象锁替换类的 this 上标记
  • PHP随机输出数组元素

    我如何从大约 20 个元素的数组中随机回显 5 个元素 Thanks 这有效吗 values array rand input 5 或者 作为更灵活的功能 function randomValues input num 5 return a
  • Java 日期和 MySQL 时间戳时区

    我正在编辑一段代码 其基本功能是 timestamp new Date 然后坚持下去timestamp中的变量TIMESTAMPMySQL 表列 然而 通过调试我看到Date显示在正确时区的对象 GMT 1 当持久化在数据库上时 它是GMT
  • Spring Boot 中的服务限流能力

    有什么办法可以实现Spring中其余服务的服务限制能力 特别是Spring boot 这里的期望是 我的服务暴露于外界 目前每秒 分钟的服务调用数量没有限制 我们希望通过设置限制来控制这一点 我有一个替代选项 通过跟踪并发哈希映射或任何缓存
  • 为什么数组不符合 Equatable,而它的项在 Swift 中是 Equatable?

    UPDATE 从 Xcode 9 3 开始 包括斯威夫特 4 1 数组相等按预期工作 并且原始问题中的代码编译没有错误 然而 请查看已接受的答案 因为它提供了更好 更现代的解决方案 原问题如下 当我尝试声明类型为泛型枚举的实例时 Post
  • java.lang.IllegalStateException:FragmentManager 已被销毁

    活动中onResume我称之为 volley request 的方法 它获取项目列表 然后将它们加载到此活动内的 ListFragment 中 当我第一次进入活动时 一切正常 但当我重新进入活动时 ListFragment 为空 并且控制台
  • 使用 ProcessBuilder 启动 CMD

    我尝试使用以下代码在 Windows 中启动 CMD 应用程序 但它无法按预期工作 来自不同网站的几个示例表明 cmd 作为 ProcessBuilder 构造中的参数应该有效 我需要做什么才能让我的 Java 应用程序在 Windows
  • 位图太大 as3

    在AS3中 我从zip文件加载png nochump的zip库通过ByteArray到Loader png 的宽度最大可达 45k 像素 但高度仅为 120 像素 这在 Flash 中产生了一个问题 因为图像的宽度只能约为 8000 像素
  • 找出对象列表中是否包含具有指定字段值的内容?

    我有一个从数据库收到的 DTO 列表 它们有一个 ID 我想确保我的列表包含具有指定 ID 的对象 显然 在这种情况下创建具有预期字段的对象不会有帮助 因为 contains 调用 Object equals 并且它们不会相等 我想出了这样
  • 当框架被拖动时,如何设置 JWindow 的位置位于文本字段下方?

    我正在制作一个自动完成项目 就像谷歌一样 我的框架中有一个 jtextfield 每当我在该字段中输入内容时 该文本字段下方就会出现一个 JWindow 并且该窗口来自另一个类 现在的问题是 每当我拖动框架时 如何使窗口始终出现在文本字段下
  • 如何使用 iBatis (myBatis) 的注释进行 IN 查询?

    我们只想在 MyBatis 中使用注释 我们确实在努力避免使用 xml 我们尝试使用 IN 子句 Select SELECT FROM blog WHERE id IN ids List

随机推荐

  • 链接器如何找到main函数?

    链接器如何在 x86 64 ELF 格式的可执行文件中找到 main 函数 一个非常通用的概述 链接器将地址分配给由符号标识的代码块main 正如它对目标文件中的所有符号所做的那样 实际上 它并不分配真实地址 而是分配相对于某个基址的地址
  • 以编程方式创建的按钮的 Onclicklistener

    我一直在寻找这个问题的答案 但似乎找不到 我有一个以编程方式创建的按钮 而不是在 xml 文件中 我希望在单击它时发生一些事情 显示警报或移动到另一个屏幕等 按钮代码 Button submitButton new Button this
  • 不带等号的 ASP.NET QueryString

    当我有一个像这样的网址时 http www mysite com MyTest http www mysite com MyTest MyTest 显示为请求对象的查询字符串中的键 如果我删除 符号 例如 http www mysite c
  • FxCop Phoenix 分析引擎出错

    因此 我尝试运行规则集中定义的一堆规则 RuleSet 文件实际上是使用 Sonarqube 生成的 我已经选择了其中的所有规则 包括 FxCop ReSharper 和 StyleCop 规则 我这样启动 FxCop C FxCop Fx
  • 如何防止春季日程重叠?

    Scheduled fixedDelay 5000 public void myJob Thread sleep 12000 如果上一个例程尚未完成 如何阻止此春季作业运行 默认情况下 spring使用单线程Executor 所以两个 Sc
  • C++ 中的 void 指针是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 什么是void指针 什么是空指针 https stackoverflow com questions 4334831 what is a void pointer and what is a null
  • “[本机代码]”是什么意思?

    我尝试研究 jQuery 代码 所以我使用了这个 document write constructor jsfiddle http jsfiddle net WZGWp 我得到这个结果 function Function native co
  • Pytest 和动态夹具模块

    我正在使用 pytest 为可以在本地和云中运行的软件编写功能测试 我想创建 2 个模块 每个模块具有相同的模块 夹具名称 并让 pytest 加载其中之一 具体取决于我是在本地还是在云中运行测试 fixtures fixtures ini
  • React-select isMulti 选择所有过滤选项

    我需要在多选中添加 全选 选项 如果至少有 1 个过滤选项 则应显示它 单击 全选 应该仅添加过滤后的选项 不一定是所有选项 到已选择的选项 Input is empty so all options are filtered 单击 全选
  • 如何在 EF Core 中插入外键影子属性?

    EF Core 允许我们省略外键属性 因为导航属性的存在足以建立两个实体之间的关系 然后 EF Core 将创建所谓的外键影子属性 https learn microsoft com en us ef core modeling shado
  • 使用ajax和codeigniter在引导模式中提交表单,无需更改页面

    我正在尝试使用 ajax 在引导模式中提交表单 而且我的表单提交成功 但是ajax内的success语句没有执行 该页面被重定向到一个空白页面 显示 msg ok 我正在粘贴控制器和视图中的代码 请帮忙 控制器 update profile
  • 正则表达式中 \b 和 \B 之间的区别

    我正在读一本关于正则表达式的书 我遇到了这个例子 b 猫把食物撒得满屋子都是 使用正则表达式 bcat b将匹配该词cat但不是cat in scattered For B作者使用了以下例子 请输入九位数的 ID 出现在您的彩色编码密码上
  • Python 3 - 无法使用 re 库进行打印

    我有这个代码 import requests from bs4 import BeautifulSoup import re url http www rockefeller edu research areas summary php i
  • Opengl Es如何用于gpgpu实现

    我想使用 Opengl Es 进行图像处理代码的 gpgpu 实现 我想知道我可以使用 Opengl Es 来实现此目的吗 如果可以的话 哪个版本的 Opengl Es 将更适合此目的 Opengl Es 1 1 或 2 0 OpenGL
  • 如何设置“内容编码”以启用 Webpack 服务器的 gzip 文件

    我使用创建了一个角度通用的应用程序Webpack服务器 我已经用过 压缩 webpack 插件 来压缩我的 js html 文件 以便我可以将它们从服务器提供给浏览器 压缩文件是通过该插件正确创建的 问题 虽然浏览器显示它可以接受 gzip
  • 盒子碰撞检测和弹跳

    我正在制作乒乓球 并且发现编写一个将球正确地从四堵墙上弹开的算法真的很困难 稍后我将处理得分问题 因为只有西边和东边的一部分会进球 所以现在我想让球在盒子周围弹跳 检测球是否撞到墙壁很容易 但我在计算新角度时遇到困难 这是我到目前为止所想出
  • tf.browser.fromPixels 仅返回零

    这里 tf browser fromPixels 返回一个只有零的张量 image data 包含预期值 不仅仅是零 tfjs 使用脚本标签加载 tfjs 1 0 0 但更改版本没有帮助 有什么问题吗 可能是一些愚蠢的事情 我是 Tenso
  • 如何在 NetBeans 的 Android 项目中使用外部 jar?

    我需要创建一个 Android 库 我可以将其作为 jar 包含在任何 Android 应用程序中 我使用 NetBeans 6 8 nbandroid 插件和 Android SDK 到目前为止我采取的步骤是 1 创建库项目 其中包含 a
  • 用于 mvc 的 html 编辑器的数据属性

    编辑器的数据属性不起作用 Html EditorFor model gt model SireTag new data typeahead dsfsdfsd 当我打开 Chrome 浏览器时 我看不到文本框的任何数据属性 我尝试凝视并没有发
  • 为什么我可以将并行流收集到任意大的数组,但不能收集顺序流?

    从回答这个问题 https stackoverflow com q 49760006 7294647 我遇到了一个奇怪的功能 以下代码按照我的预期工作 现有数组中的前两个值将被覆盖 Integer newArray Stream of 7