之前跑批处理的时候,批量往数据库里插入数据,结果爆了内存溢出,发觉是循环的时候数组过大,因此需要把数据切分下,就此记录下该方法
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;
}
网友评论