int BATCH_SIZE = 20;
private <T,E> List<E> batchListDo(List<T> ts) {
int size = ts.size();
List<E> result = new ArrayList<>();
if (size <= BATCH_SIZE) {
result.addAll(subListDo(ts));
return result;
}
for (int i = 0; i < (size / BATCH_SIZE) + 1; i++) {
if (BATCH_SIZE * i == size) {// 总数刚好是批次的倍数时
continue;
}
if (BATCH_SIZE * (i + 1) >= size) {
result.addAll(subListDo(ts.subList(BATCH_SIZE * i, size)));
}else{
result.addAll(subListDo(ts.subList(BATCH_SIZE * i, BATCH_SIZE * (i + 1))));
}
}
return result;
}
private List<T> subListDo(List<T> subTs){
List<T> result = new ArrayList<>(subTs);
return result;
}
list分批处理
于 2024-05-10 22:31:10 首次发布