List 切割成小 list 分批处理数据
使用 Google Guava 库中的方法对 bmList
进行分割。
Lists.partition()
方法用于将一个列表按指定大小进行分割,返回一个包含分割后子列表的新列表。
在这个例子中,bmList
是一个 List<AccountRelationDO>
类型的列表,50
是指定的分割大小。
这行代码的作用是将 bmList
列表按照每个子列表包含最多 50 个元素进行分割,然后将分割后的子列表存储在 partition
变量中,即 List<List<AccountRelationDO>>
类型的列表。
通过这个操作,可以将一个较大的列表分割成多个更小的子列表,以便后续对每个子列表进行处理或批量操作。
List<AccountRelationDO> bmList;
List<List<AccountRelationDO>> partition = Lists.partition(bmList, 50);
for (List<AccountRelationDO> bms : partition) {
// 业务处理
}
使用 Java 8 的 Stream API 也可以对列表进行切割
通过使用Stream.limit()
和Stream.skip()
方法来实现。
IntStream.range()
方法生成了一个从 0
到 (bmList.size() + batchSize - 1) / batchSize
的整数范围。然后,通过调用mapToObj()
方法将每个整数映射为一个子列表,使用subList()
方法对原始列表进行分割,从而得到每个子列表。
最后,使用collect()
方法将所有子列表收集到一个新的列表中,存储在 partition
变量中。
这样,就可以使用 Java 8 的 Stream API 在代码中实现对列表的切割操作,并得到包含分割后子列表的列表。
List<AccountRelationDO> bmList;
int batchSize = 50;
List<List<AccountRelationDO>> partition = IntStream.range(0, (bmList.size() + batchSize - 1) / batchSize)
.mapToObj(i -> bmList.subList(i * batchSize, Math.min((i + 1) * batchSize, bmList.size())))
.collect(Collectors.toList());
List 切割成小 list 分批处理数据的更多相关文章
- linux上大文件切割成小文件传输
使用tar命令进行压缩,使用split进行切割 压缩并分割: tar -zcvf - admin- |split -b 100m -d admin-.tar.gz 解压: 先合并成tar包在解压 ca ...
- linux下如何按行将文件切割成多个小文件
答: split -l <行数> <目标文件> <切割后的文件前缀> 举例如下: split -l 1000 jello.txt jello 将jello.txt文 ...
- oracle 字符串切割成结果集方法
oracle字符串切割几种方式 方法一: SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5')); 方法二: ...
- 用Python将一个列表分割成小列表
用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- 洛谷 P1120 小木棍 [数据加强版]解题报告
P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...
- 微信小程序请求数据
微信小程序请求数据,在页面展示,可以在onLoad生命周期中进行请求. 1.新建目录http,新建文件http.js 2.在js文件中暴露需要使用的变量 var baseUrl = 'http://1 ...
- [洛谷P1120]小木棍 [数据加强版]
题目大意:有一些同样长的木棍,被切割成几段(长$\leqslant$50).给出每段小木棍的长度,找出原始木棍的最小可能长度. 题解:dfs C++ Code: #include<cstdio& ...
- 洛谷——P1120 小木棍 [数据加强版]
P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过5050. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍 ...
- 洛谷 P1120 小木棍 [数据加强版]
P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...
- 在SqlServer2008R2中,根据分隔符把一列的值切割成多列
近期工作中,有个如上图效果的需求:将一个字段里面的值,以“,"切割成多列 通过思考.搜索,在网上找到了博主Microshaoft的文章: 妙用 T-SQL: PARSENAME 函数 (也可 ...
随机推荐
- Java通用返回工具类Result
通用返回类Result 前言:Java项目搭建时,常常需要去封装一个通用型的Result工具类,下面就是我自己封装的常用的返回类,可以直接使用.(有部分Swagger注解,使用时可忽略) 第一步.创建 ...
- RobotFrameWork环境搭建及使用
RF环境搭建 首先安装python并且配置python环境变量 pip install robotframework pip install robotframework-ride 生产桌面快捷方式 ...
- Cesium SuperMap问题调研汇总
https://segmentfault.com/a/1190000040577369?sort=newest
- 使用kafka自带脚本进行压力测试
前言 kafka官方自带压力测试脚本: 消费者压力测试:kafka-consumer-perf-test.sh 生产者压力测试:kafka-producer-perf-test.sh 测试节点: 17 ...
- 《CUDA编程:基础与实践》读书笔记(1):CUDA编程基础
1. GPU简介 GPU与CPU的主要区别在于: CPU拥有少数几个快速的计算核心,而GPU拥有成百上千个不那么快速的计算核心. CPU中有更多的晶体管用于数据缓存和流程控制,而GPU中有更多的晶体管 ...
- manacher(马拉车)算法C++详解
马拉车的定义 马拉车本质是对中心扩展法(暴力算法)的优化. 马拉车是干什么的 Manacher算法帮助我们在给定的字符串中找到最长的回文子串. 为了简单起见,我们先只处理有奇数个字符的字符串,关于偶数 ...
- 3.0 Python 迭代器与生成器
当我们需要处理一个大量的数据集合时,一次性将其全部读入内存并处理可能会导致内存溢出.此时,我们可以采用迭代器Iterator和生成器Generator的方法,逐个地处理数据,从而避免内存溢出的问题. ...
- 华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了
本文分享自华为云社区<华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了>,作者:GaussDB 数据库 . 1.背景 华为云GaussDB(for Influx ...
- numpy和pandas的基本用法
安装numpy模块 pip install numpy 可以通过导入numpy模块来使用它 import numpy as np 1.创建数组: a = np.array([1, 2, 3, 4, 5 ...
- Docker部署cas
一.首先安装cas镜像 1.拉取cas docker镜像 docker pull apereo/cas 2.启动容器: docker run --name cas -p 8443:8443 -p 8 ...