標籤:
今天遇到一個大集合裡面的資料刪除問題,
因為是一個大集合,如果同時傳遞到資料庫,那麼就會造成資料庫壓力
所以分批次的進行大量操作
其實 也可以採用多線程來處理或者多批次加多線程來處理都是可以的
下面的案例 主要講述是大集合拆分成小集合的代碼
避免下次用到忘記了!
啥也不說,直接上代碼,避免下次會用到,先記著
public static void main(String[] args) { List<String> list=new ArrayList<String>(); for (int i = 0; i <=100000; i++) { list.add(""+i); } int size=list.size(); int num = (size) % 30 == 0 ? (size / 30) : (size / 30 + 1);// 按每30條記錄查詢 int start=0; int end =0; List<String> a = new ArrayList<String>(); //方法1 for (int i = 1; i <= num; i++) { end=(i*30)> size ? size:(i*30); start=(i-1)*30; for(;start < end; start++){ a.add(list.get(start)); } System.out.println("輸出資料---"+a.toString()); //此處可以進行處理資料 插入 修改刪除 都可以進行操作 避免同時操作大集合資料 a.clear(); } //方法2 end=0; start=0; for (int i = 1; i <= num; i++) { end=(i*30)> size ? size :(i*30); start=(i-1)*30; System.out.println(end+"--"+start); a=list.subList(start,end); System.out.println("輸出資料-bbb--"+a.toString()); } }
JAVA大集合資料分批次進行切割處理