java 分批读取二维数组

来源:互联网 发布:淘宝 官网 编辑:程序博客网 时间:2024/05/11 18:12

由于数据量过大,需要将一个大的数组按照一定额规则再分组然后放到list中。实现代码如下:

 protected ArrayList<String[][]> insertData( String[][] datasList){
  ArrayList<String> idList = new ArrayList<String>();//插入失败的IDList集合
  ArrayList datas = new ArrayList();
  String[][] newDatasList = new String[100][7];
  String[][] firstDatasList = new String[datasList.length%100][7];//每一百条数据存放在一个数组
  if(datasList.length > 0){
   for(int i = 0;i<datasList.length;i++){
         if(datasList.length%100>0){
        //优先截取原数组生成那个长度不满100的数组,剩下的按100长度分割原数组
        if(i < datasList.length%100){
         firstDatasList[i][0] = datasList[i][0];
         firstDatasList[i][1] = datasList[i][1];
         firstDatasList[i][2] = datasList[i][2];
         firstDatasList[i][3] = datasList[i][3];
         firstDatasList[i][4] = datasList[i][4];
         firstDatasList[i][5] = datasList[i][5];
         firstDatasList[i][6] = datasList[i][6];
         if(i == datasList.length%100 -1){
          datas.add(firstDatasList);
         }
        }else{
         newDatasList[(i-datasList.length%100)%100][0] = datasList[i][0];
            newDatasList[(i-datasList.length%100)%100][1] = datasList[i][1];
            newDatasList[(i-datasList.length%100)%100][2] = datasList[i][2];
            newDatasList[(i-datasList.length%100)%100][3] = datasList[i][3];
            newDatasList[(i-datasList.length%100)%100][4] = datasList[i][4];
            newDatasList[(i-datasList.length%100)%100][5] = datasList[i][5];
            newDatasList[(i-datasList.length%100)%100][6] = datasList[i][6];
            
            if((i-datasList.length%100+1)%100 == 0 && (i-datasList.length%100) != 0){
             datas.add(newDatasList);
             newDatasList = new String[100][7];
            }
        }
        
       }else{
        newDatasList[i%100][0] = datasList[i][0];
           newDatasList[i%100][1] = datasList[i][1];
           newDatasList[i%100][2] = datasList[i][2];
           newDatasList[i%100][3] = datasList[i][3];
           newDatasList[i%100][4] = datasList[i][4];
           newDatasList[i%100][5] = datasList[i][5];
           newDatasList[i%100][6] = datasList[i][6];
           if((i+1)%100 == 0 && i!=0){
            datas.add(newDatasList);
            newDatasList = new String[100][7];
           }
       }
      }
  }
  return datas;
 }

 

自己实践过程中的一点小笔记,希望对大家有帮助!

0 0
原创粉丝点击