解决方案 »

  1.   

    int  size  =  joblist.size();
    int index= size%200;
    List< Job>  list= new ArrayList<Job>();
    for(int  i=0;i<index;i++)
    {
       //获取要入库的list的数据
    list =joblist.subList(i, (i+1)*200);
    //批量入库操作
    }
      

  2.   

    int  size  =  joblist.size();
    int index= size%200;  //最后一次处理的数据量
    int  tag = size/200;  //控制循环次数
    List< Job>  list= new ArrayList<Job>();
    for(int  i=0;i<tag;i++)
    {
       //获取要入库的list的数据
    list =joblist.subList(i, (i+1)*200);
    //批量入库操作
    }
    list =joblist.subList(tag*200,tag*200+index);
                                           //进行剩余数据处理
                                   不好意思啊,上面的有些错误
      

  3.   

    1、你的size有多大?如果10万以内,完全没必要分批次入库。
    2、为什么要200入库一次?入库操作很麻烦?如果不是非常麻烦,完全没有必要分批次。如果size在10万以上,且入库操作很麻烦,你的业务流程有问题,请优化......................
      

  4.   


    int index=0;
    for( Job job:joblist){
       index++;
       if(index%200==0||index==joblist.size){//逢200或者遍历到最后一个数据则执行入库
           //入库操作;
      }
    }
      

  5.   

    int step = 10;
    for(int index=0;index<list.size();index+=step){
    int end = index+step;
        end =  end>list.size()?list.size():end;
    List<Object> tmpList = list.subList(index,end);
    //TODO 入库操作
    }