Java 8 Stream 与批处理

2023-11-29

我有一个包含项目列表的大文件。

我想创建一批项目,并使用该批次发出 HTTP 请求(所有项目都需要作为 HTTP 请求中的参数)。我可以很容易地做到这一点for循环,但作为 Java 8 爱好者,我想尝试使用 Java 8 的 Stream 框架编写这个(并获得延迟处理的好处)。

Example:

List<String> batch = new ArrayList<>(BATCH_SIZE);
for (int i = 0; i < data.size(); i++) {
  batch.add(data.get(i));
  if (batch.size() == BATCH_SIZE) process(batch);
}

if (batch.size() > 0) process(batch);

我想做一些长期的事情lazyFileStream.group(500).map(processBatch).collect(toList())

最好的方法是什么?


为了完整起见,这里有一个Guava解决方案。

Iterators.partition(stream.iterator(), batchSize).forEachRemaining(this::process);

在问题中,集合可用,因此不需要流,可以写为,

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

Java 8 Stream 与批处理 的相关文章

  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 如何使用assertEquals 和 Epsilon 在 JUnit 中断言两个双精度数?

    不推荐使用双打的assertEquals 我发现应该使用带有Epsilon的形式 这是因为双打不可能100 严格 但无论如何我需要比较两个双打 预期结果和实际结果 但我不知道该怎么做 目前我的测试如下 Test public void te
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 突出显示热图中的单元格

    我目前正在尝试根据其他两个矩阵设置矩阵的热图并突出显示特定的单元格 一个例子 gt SOI NAP G021 NAP G033 NAP G039 NAP G120 NAP G122 2315101 59 69418 27 26002 69
  • 艰难地学习 Python Ex.41 对 For 循环感到困惑

    我无法理解 Learn Python the Hard Way ex 41 中的 for 循环之一是如何工作的 http learnpythonthehardway org book ex41 html以下是课程中的代码 我感到困惑的循环是
  • std::string 格式如 sprintf

    我必须格式化std string with sprintf并将其发送到文件流中 我怎样才能做到这一点 现代 C 使这变得超级简单 C 20 C 20介绍std format 这使您可以做到这一点 它使用类似于的替换字段那些在Python中
  • 删除完整 S3 存储桶 CLI

    我需要删除其中包含一些对象的 S3 存储桶 aws s3 rb force s3 ansible prod us east remove bucket failed s3 ansible prod us east An error occu
  • JBOSS eap 6.3 beta 与 websocket 和 stockjs - stomp.js 使用 spring 框架

    我使用 jboss eap 6 3 并启用了 websocket 支持 连接显然可以工作 但在连接的某些点上 Sock js 抛出 500 服务器错误 如下所示 Opening Web Socket stomp js 130 XHR fin
  • 如何分析 Java 核心转储中的信息? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果一个进程崩溃并留下核心转储或者我创建一个gcore那我该如何分析呢 我希望能够使用jmap jstack jstat等等 还可以查看所有变量的值 这样我就可以找到 JVM 崩溃或
  • 列表视图顶部出现奇怪的黑线

    我正在创建一个布局ListView在列表的最顶部有一条奇怪的黑线 我似乎不知道如何摆脱它 它是的一部分ListView因为它会随着我调整大小而上下移动ListView 以前有人遇到过这个吗 由于某种原因 我无法让 DDMS 进行屏幕截图 所
  • 将旧域重定向到新域 - Rewriterule

    以下是我的 htaccess 文件中的重定向规则 他们重定向https olddomain com to https subdomain domain com但网页没有被重定向 我仍然在加载 olddomain com page1 Rewr
  • 将数据从 Flash 发送到 Starling 类

    我想将数据从 mainClass Flash 类 发送到我的 Starling 类 这是两个类的代码 我需要在它们之间传递数据 package import flash display Sprite import flash events
  • 如何通过 Jasper PHP/REST API 部署报告(jrxml 文件)?

    如何部署报告 jrxml文件 通过 Jasper PHP REST API 到 Jasper 报表服务器 要使用 Rest API 在 Jasper Server 上部署 Jasper 报告 您可以使用以下方法 上传 JRXML 文件 JR
  • 如何使用正则表达式和Powershell提取字符串“Task(12345)”中的数字?

    如何使用正则表达式和Powershell提取字符串 Task 12345 中的数字 我尝试了以下方法 但没有机会 file gc myfile txt matches regex Task d 1 5 matches file Get a
  • Android 谷歌驱动器文件更改侦听器不起作用

    我已将更改侦听器注册到谷歌驱动器文件 如下所示 DriveFile driveFile Drive DriveApi getFile mGoogleApiClient mSelectedFileId driveFile addChangeL
  • 将秒转换为 HH:MM:SS [重复]

    这个问题在这里已经有答案了 我在网上找到了一个将秒转换为HH MM SS的函数 函数是这样的 function sec2hms sec padHours false hms hours intval intval sec 3600 hms
  • Codeigniter:标头已发送错误[重复]

    这个问题在这里已经有答案了 我有一个 CI 应用程序 它具有身份验证控制器和切换用户功能 基本上它所做的就是从 URI 中获取 ID 从 ID 中获取一些用户数据 分配一些会话数据 然后加载视图 function switch user i
  • 整个项目的行尾更改编辑器/应用程序

    我有一个由许多扩展组成的项目 这些扩展使用全部 3 种行结束类型 但服务器只能运行2个 我有一个编辑器可以更改打开文件中的行结尾 但我需要一些可以进行批量转换的应用程序 因为它大约有 10 000 个文件 有任何想法吗 谢谢你 例如 可以使
  • 无法理解如何在 1.6+ 中使用不同密度的图像?

    我试图了解 res drawables 图像如何在不同的屏幕密度下工作 现在我有一个 1 5 的应用程序 例如 我有一个 100x100 像素的图像 当在 Droid 上使用时 它会缩放该图像 使其在该设备上看起来具有相同的大小 所有其他布
  • Phonegap 应用程序:外部 URL 无法在 IOS 的应用内浏览器中打开

    外部 URL 无法在我的 PhoneGap IOS 应用程序的系统浏览器中打开 我正在使用 PhoneGap Build 2 7 0 JavaScript window open myURL blank location yes 配置文件
  • 使用 WHERE ... IN (...) 进行慢速 SQL 查询的替代方法

    这实际上是一个更大的复杂查询的一部分 根据查询计划 此语句的排序主导较大查询的成本 通过具体化查询的这一部分 我验证了它在成本中占主导地位 select sID ROW NUMBER over partition by sID order
  • 奇怪的 java 行为与原始类型的转换

    可能有人在某个地方问过这个问题 但我找不到它 有人可以澄清为什么这段代码会编译并打印出来吗1 long i byte char int long 1 System out println i 它被解析为 long i byte char i
  • Java 8 Stream 与批处理

    我有一个包含项目列表的大文件 我想创建一批项目 并使用该批次发出 HTTP 请求 所有项目都需要作为 HTTP 请求中的参数 我可以很容易地做到这一点for循环 但作为 Java 8 爱好者 我想尝试使用 Java 8 的 Stream 框