分割成小段
-
JDK 8 版本
-
示例代码
/**
-
Details determine success.
-
by Liang ZC., Phd@Stanford
-
@author LIANGZHICHENG
-
@date 2019-8-9 18:03
-
@see http://www.stanford.edu
*/
public class TestUtils {
@Autowired
private SimilarMapper similarMapper;
/**
-
对列表分批执行指定函数。
-
@param items 待处理列表
-
@param batchSize 批量处理数
-
@param consumer 处理函数
-
@param 处理类型
*/
public static void batchDo(List items,
int batchSize,
Consumer<List> consumer) {
Preconditions.checkState(batchSize > 1, “batch should be greater than 1”);
if (CollectionUtils.isEmpty(items) || consumer == null) {
return;
}
List<List> group = ListUtils.partition(items, batchSize);
group.forEach(consumer);
}
@Test
public void testBatchDo() {
List ids = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
ids.add(i);
}
// 分批执行,每批次取100条
LangUtil.batchDo(ids, 100, batchIds -> {
similarMapper.update(batchIds);
});
}
}
- JDK 7 版本
@Autowired
private ChPeriodicalThesisMapper thesisDao;
//其他CRUD…
/**
-
.
-
TODO 批量插入
-
@param thesisList
-
@return
-
@throws Exception
*/
public int insertList(List thesisList) throws Exception {
return thesisDao.insertList(thesisList);
}
/**
-
.
-
TODO 递归:分割长List为 subNum/段。
-
@param thesisList 论文list(总)
-
@param subNum 每段长度 (最小1)
-
@return
-
@throws Exception
*/
private int recurSub(List thesisList,int subNum) throws Exception{
//参数合法性判断:
if(thesisList.isEmpty()) return 0;
if(subNum<1) return 0;
//大于subNum,进入分割
if(thesisList.size() > subNum) {// && !(thesisList.isEmpty())
//将前subNum分出来,直接插入到数据库。
List toInsert = thesisList.subList(0, subNum);
//将subNum至最后 (剩余部分) 继续进行递归分割
List toRecurSub = thesisList.subList(subNum, thesisList.size());
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!