使用 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 分批处理数据的更多相关文章

  1. linux上大文件切割成小文件传输

    使用tar命令进行压缩,使用split进行切割 压缩并分割: tar -zcvf - admin- |split -b 100m -d admin-.tar.gz 解压: 先合并成tar包在解压 ca ...

  2. linux下如何按行将文件切割成多个小文件

    答: split -l <行数> <目标文件> <切割后的文件前缀> 举例如下: split -l 1000 jello.txt jello 将jello.txt文 ...

  3. oracle 字符串切割成结果集方法

    oracle字符串切割几种方式 方法一: SELECT COLUMN_VALUE FROM TABLE(SYS.ODCIVARCHAR2LIST('1','2','3','4','5')); 方法二: ...

  4. 用Python将一个列表分割成小列表

    用Python将一个列表分割成小列表 2018年01月15日 11:09:25 幸福丶如此 阅读数:16842   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  5. 洛谷 P1120 小木棍 [数据加强版]解题报告

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...

  6. 微信小程序请求数据

    微信小程序请求数据,在页面展示,可以在onLoad生命周期中进行请求. 1.新建目录http,新建文件http.js 2.在js文件中暴露需要使用的变量 var baseUrl = 'http://1 ...

  7. [洛谷P1120]小木棍 [数据加强版]

    题目大意:有一些同样长的木棍,被切割成几段(长$\leqslant$50).给出每段小木棍的长度,找出原始木棍的最小可能长度. 题解:dfs C++ Code: #include<cstdio& ...

  8. 洛谷——P1120 小木棍 [数据加强版]

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过5050. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍 ...

  9. 洛谷 P1120 小木棍 [数据加强版]

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...

  10. 在SqlServer2008R2中,根据分隔符把一列的值切割成多列

    近期工作中,有个如上图效果的需求:将一个字段里面的值,以“,"切割成多列 通过思考.搜索,在网上找到了博主Microshaoft的文章: 妙用 T-SQL: PARSENAME 函数 (也可 ...

随机推荐

  1. Java通用返回工具类Result

    通用返回类Result 前言:Java项目搭建时,常常需要去封装一个通用型的Result工具类,下面就是我自己封装的常用的返回类,可以直接使用.(有部分Swagger注解,使用时可忽略) 第一步.创建 ...

  2. RobotFrameWork环境搭建及使用

    RF环境搭建 首先安装python并且配置python环境变量 pip install robotframework pip install robotframework-ride 生产桌面快捷方式 ...

  3. Cesium SuperMap问题调研汇总

    https://segmentfault.com/a/1190000040577369?sort=newest

  4. 使用kafka自带脚本进行压力测试

    前言 kafka官方自带压力测试脚本: 消费者压力测试:kafka-consumer-perf-test.sh 生产者压力测试:kafka-producer-perf-test.sh 测试节点: 17 ...

  5. 《CUDA编程:基础与实践》读书笔记(1):CUDA编程基础

    1. GPU简介 GPU与CPU的主要区别在于: CPU拥有少数几个快速的计算核心,而GPU拥有成百上千个不那么快速的计算核心. CPU中有更多的晶体管用于数据缓存和流程控制,而GPU中有更多的晶体管 ...

  6. manacher(马拉车)算法C++详解

    马拉车的定义 马拉车本质是对中心扩展法(暴力算法)的优化. 马拉车是干什么的 Manacher算法帮助我们在给定的字符串中找到最长的回文子串. 为了简单起见,我们先只处理有奇数个字符的字符串,关于偶数 ...

  7. 3.0 Python 迭代器与生成器

    当我们需要处理一个大量的数据集合时,一次性将其全部读入内存并处理可能会导致内存溢出.此时,我们可以采用迭代器Iterator和生成器Generator的方法,逐个地处理数据,从而避免内存溢出的问题. ...

  8. 华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了

    本文分享自华为云社区<华为云GaussDB(for Influx)单机版上线,企业降本增效利器来了>,作者:GaussDB 数据库 . 1.背景 华为云GaussDB(for Influx ...

  9. numpy和pandas的基本用法

    安装numpy模块 pip install numpy 可以通过导入numpy模块来使用它 import numpy as np 1.创建数组: a = np.array([1, 2, 3, 4, 5 ...

  10. Docker部署cas

    一.首先安装cas镜像 1.拉取cas docker镜像 docker pull apereo/cas 2.启动容器: docker run  --name cas -p 8443:8443 -p 8 ...