double[][] data=null;
String[] columnKeys=null;
ResultSet rs=db.Query(sql);
ResultSet rs2=db.Query(sql2);
int i=0;
 if(rs2.next()){
  i=rs2.getInt(1);
  columnKeys=new String[i];
  data=new double[0][i];
}

for(int j=0;j<i;j++){
  rs.next();
  columnKeys[j]=rs.getString(2);
  data[0][j]=rs.getDouble(1);
}老是报那一排java.lang.ArrayIndexOutOfBoundsException,要如何解决,急啊,要交项目了,各位大大帮忙解决下

解决方案 »

  1.   

    data=new double[0][i]; 
    外部的数组长度为0,当然报异常了
      

  2.   

    up  即使你设置为data=new double[1][i]; 
    后面不加控制就使用 错误的可能性还是很大
      

  3.   

    非要用二维数组么.用Map应该也可以的
    double[][] data=null; 
    String[] columnKeys=null; 
    ResultSet rs=db.Query(sql); 
    ResultSet rs2=db.Query(sql2); 
    int i=0; 
    ArrayList dataList= new ArrayList();
    ArrayList columnKeyList = new ArrayList();
    for(int j=0;j <i;j++){ 
      rs.next(); 
      columnKeyList.add(rs.getString(2));// columnKeys[j]=rs.getString(2); 
      dataList.add(columnKeyList.toArray(new Double[columnKeyList.size()]));
     // data[0][j]=rs.getDouble(1); 
    } 感觉应该调用方式和之前差别不是很大应该.