在Java中从sql初始化和馈送数组数据

在Java中从sql初始化和馈送数组数据,java,sql,arrays,initialization,Java,Sql,Arrays,Initialization,我正在用Java编写myTable类,该类将SQL中的数据映射到可用的数组,以便进一步处理。我注意到,为了初始化和馈送数组,我需要运行2个查询。有没有更简单的解决办法 目前我有一些类似于: float[] data; msql.query("select count(*) from `%s`", tableName); msql.next(); size = msql.getInt(1); // get size of array data = new floa

我正在用Java编写myTable类,该类将SQL中的数据映射到可用的数组,以便进一步处理。我注意到,为了初始化和馈送数组,我需要运行2个查询。有没有更简单的解决办法

目前我有一些类似于:

   float[] data;

   msql.query("select count(*) from `%s`", tableName);
   msql.next();
   size = msql.getInt(1); // get size of array 
   data = new float[size];
然后我必须运行第二个查询:

   int row = 0;
   msql.query("SELECT * FROM `%s`", tableName); 
   while (msql.next()) { 
   data[row] = msql.getFloat(2);
   row++;
   }
是否可以在不运行第一次查询的情况下自动获取数组的大小? 还是在加载数据时进行扩展

我知道ArrayList,但我更喜欢使用数组,因为它们更快

谢谢你的帮助

使用某种可以根据需要动态调整大小的


查看以了解更多详细信息。

一旦创建了数组,就无法更改数组的大小,这就是为什么首选
List
ArrayList

如果在构建数据时使用ArrayList,然后将ArrayList克隆到数组以进行进一步的下游处理

List<Float> dataList = new ArrayList<Float>();
   msql.query("SELECT * FROM `%s`", tableName); 
   while (msql.next()) { 
   dataList.add(msql.getFloat(2));
   row++;
   }

// copy list to array
float [] data = dataList.toArray(new float[dataList.size()]);
List dataList=new ArrayList();
msql.query(“从“%s”中选择*表名);
而(msql.next()){
add(msql.getFloat(2));
行++;
}
//将列表复制到数组
float[]data=dataList.toArray(新的float[dataList.size()]);

谢谢!我必须将数据初始化为Float[],而不是Float[](如您的代码中所示),它成功了。不过,我做了一些测试,使用arrayList+1 SQL查询的解决方案比使用arrays+2 SQL查询的方法要慢。其次,我尝试了expand()方法来处理数组,如中所示,但它也比2SQLs慢!干杯