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