代码:
import java.util.ArrayList; import java.util.List; /** * 模拟批量处理数据 * 当数据量过大过多导致超时等问题可以将数据进行分批处理 * @author 【】 * */ public class BatchUtil { public static void listBatchUtil(List<Integer> lists) { System.out.println(lists); // 定义批处理的数据数量(即批处理条件) int num = 10; // 判断集合数量,如果小于等于定义的数量(即未达到批处理条件),直接进行处理 if (lists.size() <= num) { System.out.println(lists.size()); System.out.println(lists.toString().substring(1, lists.toString().lastIndexOf("]"))); return; } // 如果大于定义的数量,按定义数量进行批处理 int times = lists.size()/num + 1; System.out.println("一共要进行"+times+"次批处理"); // 遍历分批处理次数,并进行批处理 for (int i = 0; i < times; i++) { // 定义要进行批处理的临时集合 List<Integer> tempList = new ArrayList<>(); // 将要批处理数据放入临时集合中 for (int j = i*num; j < lists.size(); j++) { tempList.add(lists.get(j)); if (tempList.size() == num) { break; } } // 进行批处理 System.out.println("======================进行第"+(i+1)+"次批处理======================="); System.out.println(tempList.size()); System.out.println(tempList.toString().substring(1, tempList.toString().lastIndexOf("]"))); System.out.println("========================================================="); } } public static void main(String[] args) { List<Integer> lists = new ArrayList<>(); for (int i = 1; i <= 26; i++) { lists.add(i); } listBatchUtil(lists); } }
实现效果:
原文地址:https://www.cnblogs.com/Big-Boss/p/9543667.html
时间: 2024-10-06 09:02:53