Java动态数组创建

时间:2019-05-23 16:11:34

标签: java arrays

我遇到一种情况,正在使用Aspose库绘制图形。我创建了一个图形,但是在填充这些数组时,我对所有内容(例如数组和列名)进行了硬编码。我已经赋予了使该过程动态化并从数据库读取所有内容的任务。我的记录总大小存储在count变量中,这有助于我初始化该大小的数组。我也有关于要创建为columnCount存储的数组数的信息。有了此信息countcolumnCount,由于现在不再对它们进行硬编码,因此如何创建数组。它将在此块内创建。

for(int i=0; i<columnCount; i++){
       //double type array will be initialized here. each of size count. 
     }
public static void main(String[] args){
    ResultSet rs = ReportHandler.getQueryResult();
    rs.last();
    // get total number of records for array size.
    int count = rs.getRow();
    // this count will tell number of arrays to be created.
    int columnCount = ReportHandler.getCount("035","005");

    // this was static code. now i need to make it dynamic.
     double[] policyYear = new double[count];
     double[] commPremium = new double[count];

     for(int i=0; i<columnCount; i++){
       //double type array will be initialized here. each of size count. 
     }

     rs.beforeFirst();

     int j=0;
     // now i've a result set
     while(rs.next()){
       //static code, need to make it dynamic,
      policyYear[j] = rs.getDouble("policy_year");
      commPremium[j] = rs.getDouble("commulative_premium");
      j++;
  }
}

1 个答案:

答案 0 :(得分:3)

如果您想拥有一个数组但不知道其大小,则可以使用ArrayList类,该类的行为类似于数组,但是大小是动态的。

使用.add()方法将项​​目添加到数组中。

更新

根据注释,用户需要具有动态数组列表。

所以...-使用ArrayList的ArrayList:

ArrayList<ArrayList<Double>> data = new ArrayList<>();
// ....
data.get(colIndex).set(rowIndex, rs.getDouble(colNameByIndex()));
   // assumes get(colIndex) is  not NULL - fix in real code

或ArrayList的HashMap

Map<String, ArrayList<Double>> data = new HashMap<>();
// ....
data.get(colName).set(rowIndex, rs.getDouble(colName));
   // assumes get(colName) is  not NULL - fix in real code