0

SQL のデータをさらに処理するために使用可能な配列にマップする Java の myTable クラスに取り組んでいます。配列を初期化してフィードするには、2 つのクエリを実行する必要があることに気付きました。もっと簡単な解決策はありますか?

現在、私は次のようなものを持っています:

   float[] data;

   msql.query("select count(*) from `%s`", tableName);
   msql.next();
   size = msql.getInt(1); // get size of array 
   data = new float[size];

次に、2 番目のクエリを実行する必要があります。

   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 に答える