在Java中从sql初始化和馈送数组数据
我正在用Java编写myTable类,该类将SQL中的数据映射到可用的数组,以便进一步处理。我注意到,为了初始化和馈送数组,我需要运行2个查询。有没有更简单的解决办法 目前我有一些类似于:在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
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慢!干杯