public class ListSplitUtil {
/**
* 拆分
*
* @param allList allList
* @param limitCount limitCount
* @param T
* @return List
*/
public static List<List> splitList(List allList, int limitCount){
if (CollectionUtils.isEmpty(allList)) {
return new ArrayList<>();
}
List<List> appSplitList = new ArrayList<>();
long total = allList.size();
long remain = total % limitCount;
long times = total / limitCount;
long realTimes = remain == 0 ? times : times + 1;
for (long i = 0; i < realTimes; i++) {
List<T> batchList = allList.stream().skip(i * limitCount).limit(limitCount).collect(Collectors.toList());
appSplitList.add(batchList);
}
return appSplitList;
}
}
// 使用实例
List<List> lists = ListSplitUtil.splitList(newConfigList, 100);
for (List configList : lists) {
regressionModelDao.batchInsertPredictModelDuConfig(configList);
}
public int batchInsertPredictModelDuConfig(List duConfigList) {
if (CollectionUtils.isEmpty(duConfigList)) {
return 0;
}
Map<String, Object> param = new HashMap<>();
param.put(“duConfigList”, duConfigList);
return dalClient.execute(SQL_NAMESPACE + “batchInsertPredictModelDuConfig”, param);
}