之前跑批處理的時(shí)候,批量往數(shù)據(jù)庫(kù)里插入數(shù)據(jù),結(jié)果爆了內(nèi)存溢出,發(fā)覺(jué)是循環(huán)的時(shí)候數(shù)組過(guò)大,因此需要把數(shù)據(jù)切分下,就此記錄下該方法
public static <T> List<List<T>> partList(List<T> source, int n) {
if (source == null) {
return null;
}
if (n == 0) {
return null;
}
List<List<T>> result = new ArrayList<List<T>>();
int size = source.size();
int remaider = size % n;
int number = size / n;
for (int i = 0; i < number; i++) {
List<T> value = source.subList(i * n, (i + 1) * n);
result.add(value);
}
if (remaider > 0) {
List<T> subList = source.subList(size - remaider, size);
result.add(subList);
}
return result;
}