一、代码
public class BatchProcess { public static void main(String[] args) { List<Integer> totalList = new ArrayList<>(); for (int i = 1; i <= 100; i++) { totalList.add(i); } batchProcessList(totalList); } // 将 totalList 集合分成多批进行处理(每一批 batchList) public static void batchProcessList(List<Integer> totalList) { Integer BATCH_COUNT = 20; List<Integer> batchList = new ArrayList<>(); if (!CollectionUtils.isEmpty(totalList)) { for (int i = 0; i < totalList.size(); i++) { batchList.add(totalList.get(i)); // 如果分批的集合填充满了元素或者填充的是最后一个元素 if ((Objects.nonNull(batchList) && Objects.equals(batchList.size(), BATCH_COUNT)) || Objects.equals((totalList.size() - 1), i)) { System.out.println(batchList); System.out.println("------------------------------------------"); // 执行完了处理逻辑之后,将 batchList 的元素清空 batchList.clear(); } } } } }
二、测试结果