由于数据量过大,需要将一个大的数组按照一定额规则再分组然后放到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;
}
自己实践过程中的一点小笔记,希望对大家有帮助!