Java将List中的元素分批次处理

        // 假设这是原始的 List<String> 集合
        List<String> list = new ArrayList<>(); 

        // 分批处理,每次取500个元素
        int batchSize = 500;
        for (int i = 0; i < list.size(); i += batchSize) {
            int endIndex = Math.min(i + batchSize, list.size());
            List<String> batch = list.subList(i, endIndex);

            // 在这里进行对每个批次的处理
            // 处理 batch 集合
        }

        此方法即可实现对list的集合分批次,代码中是分了500一次,比如此方法可以用于数据库批量操作时。

Java,如果你想将Map的内容批写入文件,你可以使用ArrayList或者List接口来临时存储数据,直到达到一定大小后再一次性写入文件。这里是一个简单的示例: ```java import java.io.*; import java.util.*; public class MapToBatchWriter { private static final int BATCH_SIZE = 100; // 设置每个批次元素数量 private List<Map.Entry<String, String>> batchEntries = new ArrayList<>(); // 存储批量数据 public void writeToFile(Map<String, String> map) throws IOException { for (Map.Entry<String, String> entry : map.entrySet()) { batchEntries.add(entry); // 添加到批次列表 if (batchEntries.size() == BATCH_SIZE || !batchEntries.isEmpty()) { // 达到batch_size或者已非空 saveBatch(batchEntries); // 将批次保存到文件 batchEntries.clear(); // 清空当前批次 } } // 最后的批次不需要清空 if (!batchEntries.isEmpty()) { saveBatch(batchEntries); } } private void saveBatch(List<Map.Entry<String, String>> entries) throws IOException { try (PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("output.txt", true)))) { for (Map.Entry<String, String> entry : entries) { writer.println(entry.getKey() + ": " + entry.getValue()); // 按行写入文件 } } } public static void main(String[] args) { Map<String, String> myMap = new HashMap<>(); // ...填充数据... try { new MapToBatchWriter().writeToFile(myMap); } catch (IOException e) { e.printStackTrace(); } } } ``` 在这个示例里,`writeToFile`方法遍历给定的Map,并逐个添加条目到`batchEntries`列表。当列表满了或非空时,会调用`saveBatch`方法将整个批次写入文件。最后,还会处理最后一个批次(即使不满`BATCH_SIZE`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值