簡體   English   中英

轉換ArrayList <Double> 對於JAVA / Android,雙數組,反之亦然

[英]Converting ArrayList<Double> to Double Array and vice-versa for JAVA/Android

我一直在嘗試將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]);
}

ArrayLists 添加之前,您要實例化您的Arrays

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

這將創建length 0的數組。 然后你將在下面的循環中有一個空指針。

UPDATE

然后你必須編輯你的循環:

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

對此

for (int k1 = 0; k1 < numsy.size(); k1++) {
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;
 }

為什么不嘗試使用內置方法:
double[] arrayX = numsx.toArray(new double[0]);
double[] arrayY = numsY.toArray(new double[0]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM