把List拆分多个list分批插入数据(用JAVA8 Stream流方法)

本文介绍了如何使用Java8的Stream流处理大数据量的List,避免堆内存溢出,通过将List拆分成多个包含500条数据的小List,实现分批插入数据的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先业务需要将多条数据拆分进行插入,这样效率会高一点,不会造成堆内存溢出异常!!;否则会造成堆异常溢出异常,所以将其拆分成多条分批插入

        CsvReader reader = CsvUtil.getReader();
        //假设csv文件在classpath目录下
        List<jzsh_gd_busiorder> result = reader.read(
                ResourceUtil.getReader("D:\\data\\bu
分批处理 `List` 是指将一个较大的列表分割成若干个小批量的子列表,以便逐步处理数据。这种方法常用于需要对大量数据进行操作但又希望避免一次性加载所有数据到内存的情况,例如大数据集、文件读取等场景。 以下是几种常见的实现方式: ### 使用 Java 实现 List分批处理 #### 示例 1:手动切片 ```java import java.util.ArrayList; import java.util.List; public class BatchProcessing { public static <T> List<List<T>> splitIntoBatches(List<T> list, int batchSize) { List<List<T>> batches = new ArrayList<>(); for (int i = 0; i < list.size(); i += batchSize) { batches.add(list.subList(i, Math.min(i + batchSize, list.size()))); } return batches; } public static void main(String[] args) { List<String> data = List.of("A", "B", "C", "D", "E", "F"); int batchSize = 2; List<List<String>> batches = splitIntoBatches(data, batchSize); for (List<String> batch : batches) { System.out.println(batch); // 输出每个批次的数据 } } } ``` 在这个例子中,我们通过循环遍历整个列表,并利用 `subList()` 函数将其分为指定大小的小块。 --- ### 其他语言示例 #### Python 中的分批处理 Python 提供了更简洁的方式来完成类似任务: ```python def split_into_batches(lst, batch_size): for i in range(0, len(lst), batch_size): yield lst[i:i + batch_size] data = ["A", "B", "C", "D", "E", "F"] batch_size = 2 for batch in split_into_batches(data, batch_size): print(batch) ``` 上述代码会生成一批一批的结果,每组包含两个元素。 --- ### 应用场景 1. **数据库查询**:如果从数据库获取大量记录,可以按页数请求并逐页处理。 2. **并发计算**:将工作分成小部分交给线程池或多核 CPU 并行化运行。 3. **大规模日志分析**:当遇到非常大的文本或二进制时,可以划分成多个片段分别解析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值