簡體   English   中英

從 Arraylist 轉換<double>到原始類型雙數組</double>

[英]Convert from Arraylist<Double> to primitivetype double array

嘿,我正在嘗試從 DBhelper class 獲取我的 ArrayList 並將其轉換為 Doublearraylist 中的雙精度值,因為我希望能夠從另一個變量中計算值。

我的 dbhelperclass 包含用於獲取 arraylist 的代碼

public ArrayList<Double> getLastEntry(){
    ArrayList<Double> data = new ArrayList<Double>();
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.query(TABLE_NAME, new String[]{COL2},null, null, null, null, null);
    Double add = null;
    while(cursor.moveToNext()){
        if(cursor.moveToLast()){
            add=cursor.getDouble(0);
            data.add(add);
        }
    }
    cursor.close();
    return data;
}

到目前為止,我嘗試了兩件事來轉換數據,但在我的錯誤消息中我發現 java.lang.double 需要一個字符串來檢查它是否可以登錄到 logcat 但我只是記錄了所有這些符號而不是字符串所以我猜我轉換錯了。

轉換器的代碼

我試過的第一種方法

ArrayList<Double> data = mDatabaseHelper.getLastEntry();
double []arrX =  new double [data.size()];
for(int j=0; j<data.size();j++){
    double convert = data.get(j);
    arrX[j]=convert;
}
Log.d(TAG, arrX.toString());

我嘗試的第二種方法來自我認為較新的 java 的書。 但它說不能在新的 Arraylist 之間推斷 arguments

代碼:

data = new ArrayList<>(Arrays.asList(data));
double[] arr = data.stream().mapToDouble(Double::doubleValue).toArray();

關於第二種方式 - 我認為有一個錯誤:

data = new ArrayList<>(Arrays.asList(data)); -> 在這里你將一個ArrayList<Double>變成一個ArrayList<ArrayList<Double>>

你可能想寫:

ArrayList<Double> data = mDatabaseHelper.getLastEntry();
double[] arr = data.stream().mapToDouble(Double::doubleValue).toArray();

暫無
暫無

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

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