Java List数据量大, 需要分片批次操作

  • Post author:
  • Post category:java


很久前,写过关于list数据量大,分批处理的相关介绍文章(自定义的java代码实现):


SSM Mybatis 批量插入 采用分批处理一次500条_默默不代表沉默-CSDN博客_mybatis分批插入

该篇再带来两种 我认为使用挺方便的 分批方式:

1. 使用 apache 的工具包 :

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

代码示例:

ListUtils.partition

        List<Integer> list=new ArrayList<>();
        for (int i=0;i<500;i++){
            list.add(i);
        }
        List<List<Integer>> newList = Lists.partition(list, 150);
        for (List<Integer> list1:newList){
            System.out.println(list1.size());
        }

结果输出:

2.使用guava的工具包 :

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

代码示例:

Lists.partition

        List<Integer> list=new ArrayList<>();
        for (int i=0;i<500;i++){
            list.add(i);
        }
        List<List<Integer>> newList = Lists.partition(list, 150);
        for (List<Integer> list1:newList){
            System.out.println(list1.size());
        }

结果输出:

当然还有其他工具包也是封装了这些list分批的函数的,但是我只介绍这两种吧。