方法一:
代碼如下:
import java.util.ArrayList;
import java.util.List;
/**
* 模擬批量處理數據(一)
* 當數據量過大過多導致超時等問題可以將數據進行分批處理
* @author 【】
*
*/
public class BatchUtil2 {
public static void listBatchUtil(List<Integer> lists) {
System.out.println(lists);
System.out.println(lists.size());
int temp = 1;
for (int i = 0; i < lists.size(); i += 10) {
System.out.println("======================進行第" + temp + "次批處理=======================");
if (lists.size() - i > 10) {
System.out.println(lists.subList(i, i + 10).toString());
} else {
if (lists.size() > i) {
System.out.println(lists.subList(i, lists.size()).toString());
}
}
temp += 1;
}
}
public static void main(String[] args) {
List<Integer> lists = new ArrayList<>();
for (int i = 1; i <= 26; i++) {
lists.add(i);
}
listBatchUtil(lists);
}
}
實現效果:

方法二:
代碼如下:
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);
}
}
實現效果:

