2

Double ArrayList を Double Array に、またはその逆に変換しようとしています。

これは、Double ArrayList を Double Array に変換するためのコードですが、プログラムがクラッシュし続けます。何か不足していますか?または、ロジックがすべて間違っていますか?

ArrayList<Double> numsy = new ArrayList<Double>();
ArrayList<Double> numsx = new ArrayList<Double>();  
for (int j = 0; j < 100; j++) {
    numsy.add((double)generator.nextFloat());
    numsx.add((double)j);
}
double[] arrayX = new double[numsx.size()];     
double[] arrayY = new double[numsy.size()];
//assigns array x and y the values in the list.
for (int k1 = 0; k1 < numsy.size(); i++) {
    double f = numsy.get(k1);
    arrayY[k1] = f;
    f = numsx.get(k1);
    arrayX[k1] = f;
}
FFT doFFT = new FFT(4);
doFFT.fft(arrayX, arrayY);
//adding the FFT numbers back to the Lists
for (int j = 0; j < 100; j++) {
    numsy.add(arrayY[j]);
    numsx.add(arrayX[j]);
}
4

3 に答える 3

4

に値をArrays 追加する前にインスタンス化していますArrayLists:

double[] arrayX = new double[numsx.size()];     
double[] arrayY = new double[numsy.size()];   

lengthこれにより、 : 0の配列が作成されます。次に、以下のループに null ポインターがあります。

アップデート

次に、ループを編集する必要があります。

for (int k1 = 0; k1 < numsy.size(); i++) {

これに

for (int k1 = 0; k1 < numsy.size(); k1++) {
于 2012-10-19T02:57:00.667 に答える
0
ArrayList<Double> numsy = new ArrayList<Double>();
ArrayList<Double> numsx = new ArrayList<Double>();

 for (int j = 0; j < 100; j++) {
     numsy.add((double)generator.nextFloat());
     numsx.add((double)j);
 }

// numX と numY に値を追加した後、arrayX と arrayY を宣言します

 double[] arrayX = new double[numsx.size()];     
 double[] arrayY = new double[numsy.size()];     
    //assigns array x and y the values in the list.
 for (int k1 = 0; k1 < numsy.size(); k1++) {
   double f = numsy.get(k1);
   arrayY[k1] = f;
   f = numsx.get(k1);
   arrayX[k1] = f;
 }
于 2012-10-19T03:00:06.267 に答える
-1

組み込みメソッドを使用してみませんか。
double[] arrayX = numsx.toArray(new double[0]);
double[] arrayY = numsY.toArray(new double[0]);

于 2012-10-19T03:18:57.117 に答える