0

我正在研究 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++;
   }

是否可以在不运行第一个查询的情况下以某种方式自动获取数组的大小?或在数据加载时扩展它?

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

谢谢你的帮助!

4

3 回答 3

0

如果在构建数据时使用 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()]);
于 2013-07-11T07:31:25.480 回答
0

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

查看收藏以获取更多详细信息

于 2013-07-11T07:28:36.673 回答
0

一旦创建了数组,您就无法更改其大小,这就是您想要做的事情的原因List或首选。ArrayList

于 2013-07-11T07:29:40.927 回答