很久前,写过关于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分批的函数的,但是我只介绍这两种吧。