JAVA大集合數據分批次進行切割處理


今天遇到一個大集合里面的數據刪除問題,

因為是一個大集合,如果同時傳遞到數據庫,那么就會造成數據庫壓力

所以分批次的進行批量操作

其實 也可以采用多線程來處理或者多批次加多線程來處理都是可以的

下面的案例 主要講述是大集合拆分成小集合的代碼

避免下次用到忘記了!

啥也不說,直接上代碼,避免下次會用到,先記着

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());
          }
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM