標籤:class time 次數 integer for bsp inf 問題 new
代碼:
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);}}
實現效果:
Java類比資料量過大時批量處理資料實現