美文网首页
集合分批保存工具类

集合分批保存工具类

作者: 天明少侠 | 来源:发表于2023-12-04 16:18 被阅读0次

集合分批保存工具类

package cn.yto.learn.report;

/**
 * <p>
 * </p>
 */

import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;

import java.util.ArrayList;
import java.util.List;

public class BatchSaveUtils {

    /**
     * 将集合分批保存
     *
     * @param originalList 原始集合
     * @param batchSize    每批次的大小
     * @param <T>          集合元素类型
     * @return 保存结果的列表
     */
    public static <T> List<List<T>> batchSave(List<T> originalList, int batchSize) {
        if (originalList == null || originalList.isEmpty() || batchSize <= 0) {
            throw new IllegalArgumentException("Invalid input parameters");
        }

        int totalElements = originalList.size();
        int totalBatches = (int) Math.ceil((double) totalElements / batchSize);

        List<List<T>> result = new ArrayList<>();

        for (int i = 0; i < totalBatches; i++) {
            int startIndex = i * batchSize;
            int endIndex = Math.min(startIndex + batchSize, totalElements);
            List<T> batch = new ArrayList<>(originalList.subList(startIndex, endIndex));
            result.add(batch);
        }

        return result;
    }

    public static void main(String[] args) {
        // 示例用法
        List<Integer> originalList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12);
        System.out.println(originalList.size());

        int batchSize = 5;

        List<List<Integer>> batches = batchSave(originalList, batchSize);

        for (int i = 0; i < batches.size(); i++) {
            System.out.println("Batch " + (i + 1) + ": " + batches.get(i).size());
        }

        for (int i = 0; i < batches.size(); i++) {
            System.out.println("Batch " + (i + 1) + ": " + JSON.toJSONString(batches.get(i)));
        }
    }
}

相关文章

  • List集合分页工具类

    1.说明 List集合分页工具类,可以对内存中的List集合进行分页,在需要分批返回数据,或者分批插入数据等场景都...

  • Java集合

    集合概述 •Java提供集合类,集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有集合类都位于jav...

  • java——集合-其他

    Collections集合工具类 同数组的工具类Arrays相同,集合的工具类为Collections,其中提供了...

  • 集合

    为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供了集合类,集合类主要负责保存...

  • 13 Java集合 - Collections工具类

    13.1 Collections工具类 Collections是Java提供的操作集合的工具类,可以对集合进行排序...

  • 集合工具类

    Stack栈操作   栈是一种先进后出的数据结构。例如:在文本编辑器上都有撤销功能,那么每次使用时可以发现,最后一...

  • Java集合框架体系详细梳理,含面试知识点。(三)

    五、集合框架工具类Collections和Arrays Collections是集合框架的工具类,里面的方法都是静...

  • Collections集合工具类以及Arrays数组工具类

    Collcetios、Arrays Collections(集合工具类) Arrays(数组工具类) Collec...

  • 集合1--综述

    在编程中,常常需要集中存放多个数据。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有的集合类都位于...

  • Java入门:集合

    集合 所谓集合,就是来保存,装数据,也可称为容器类。集合中的类在java.util包下。Java的集合框架提供了操...

网友评论

      本文标题:集合分批保存工具类

      本文链接:https://www.haomeiwen.com/subject/sscrgdtx.html